1 /*******************************************************************************
\r
2 * Copyright (c) 2010 Association for Decentralized Information Management in
\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
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.databoard.tests;
14 import static org.junit.Assert.assertEquals;
\r
16 import java.io.ByteArrayInputStream;
\r
17 import java.io.InputStream;
\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
27 public class TestRandomValues {
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);
35 Serializer s = Bindings.getSerializer( b );
36 byte[] bytes = s.serialize(o);
37 InputStream is = new ByteArrayInputStream(bytes);
39 assertEquals(0, is.available());
\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
47 System.out.print(i+": ");
48 System.out.println(b.printValueDefinition(o, true));