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