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