summaryrefslogtreecommitdiffstats
path: root/embedding/java/src/org/uscxml/tests/TestData.java
blob: d470d0039b622148d8e6fccd96d6f802072bc976 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package org.uscxml.tests;

import java.io.StringWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.uscxml.Blob;
import org.uscxml.Data;
import org.w3c.dom.Document;

public class TestData {

	public static void main(String[] args) throws Exception {
		System.load("/Users/sradomski/Documents/TK/Code/uscxml/build/cli/lib/libuscxmlNativeJava64.jnilib");
		{
			Data data = Data.fromJSON("[1,2,3,4,5]");
			System.out.println(data);
		}
		{
			Data data = Data.fromJSON("{ \"foo\": \"bar\", \"faz\": 12 }");
			System.out.println(data);
		}

		{
			Data data = new Data();

			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();

			Document document = builder.newDocument();
			document.appendChild(document.createElement("foo"));

			Transformer transformer = TransformerFactory.newInstance()
					.newTransformer();
			StreamResult result = new StreamResult(new StringWriter());
			DOMSource source = new DOMSource(document);
			transformer.transform(source, result);

			String xml = result.getWriter().toString();

			data.setXML(xml);
			System.out.println(data.getXML());
		}

		{
			byte origData[] = new byte[1024];
			for (int i = 0; i < origData.length; i++) {
				origData[i] = (byte) i;
			}

			{
				Blob blob = new Blob(origData, "application/octet-stream");
				if (origData.length != blob.getSize())
					throw new RuntimeException("Blob does not match");

				for (int i = 0; i < origData.length; i++) {
					if (origData[i] != blob.getData()[i])
						throw new RuntimeException("Blob mismatch at " + i);
				}
			}

			Data data = new Data(origData, "application/octet-stream");
			Blob blob = data.getBinary();
			System.out.println(blob.getSize());

			byte newData[] = blob.getData();

			if (newData.length != origData.length)
				throw new RuntimeException("Arrays length does not match");
			for (int i = 0; i < origData.length; i++) {
				if (newData[i] != origData[i])
					throw new RuntimeException("Mismatch at " + i);
			}

		}

	}
}