]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/testcases/org/simantics/databoard/tests/TestRandomValues.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / testcases / org / simantics / databoard / tests / TestRandomValues.java
1 /*******************************************************************************
2  *  Copyright (c) 2010 Association for Decentralized Information Management in
3  *  Industry THTH ry.
4  *  All rights reserved. This program and the accompanying materials
5  *  are made available under the terms of the Eclipse Public License v1.0
6  *  which accompanies this distribution, and is available at
7  *  http://www.eclipse.org/legal/epl-v10.html
8  *
9  *  Contributors:
10  *      VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.databoard.tests;
13
14 import static org.junit.Assert.assertEquals;
15
16 import java.io.ByteArrayInputStream;
17 import java.io.InputStream;
18
19 import org.junit.Test;
20 import org.simantics.databoard.Bindings;
21 import org.simantics.databoard.binding.Binding;
22 import org.simantics.databoard.binding.VariantBinding;
23 import org.simantics.databoard.serialization.Serializer;
24 import org.simantics.databoard.type.VariantType;
25 import org.simantics.databoard.util.binary.BinaryMemory;
26
27 public class TestRandomValues {
28                 
29         public @Test void doTest() throws Exception {
30                 VariantBinding b = (VariantBinding) Bindings.getMutableBinding( new VariantType() );
31                 for (int i=0; i<=10000; i++) {
32                         Object o = b.createRandomUnchecked(i);
33                         b.assertInstaceIsValid(o, null);
34                         
35                         Serializer s = Bindings.getSerializer( b );
36                         byte[] bytes = s.serialize(o);
37                         InputStream is = new ByteArrayInputStream(bytes);
38                         s.deserialize(is);
39                         assertEquals(0, is.available());
40                         
41                         Object o2 = b.createDefault();
42                         Binding cb = b.getContentBinding(o);
43                         b.setContent(o2, cb, cb.createDefault());
44                         s.deserializeTo(new BinaryMemory(bytes), o2);
45                         
46                         
47                         System.out.print(i+": ");
48                         System.out.println(b.printValueDefinition(o, true));
49                 }
50         }
51         
52 }
53