1 package be
.nikiroo
.utils
.test
;
5 import be
.nikiroo
.utils
.serial
.Exporter
;
6 import be
.nikiroo
.utils
.serial
.Importer
;
8 class SerialTest
extends TestLauncher
{
10 * Required for Import/Export of objects.
16 public SerialTest(String
[] args
) {
17 super("Serial test", args
);
19 addTest(new TestCase("Simple class Import/Export") {
21 public void test() throws Exception
{
22 Data data
= new Data(42);
23 String encoded
= new Exporter().append(data
).toString(false);
24 Object redata
= new Importer().read(encoded
).getValue();
25 String reencoded
= new Exporter().append(redata
)
28 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
29 reencoded
.replaceAll("@[0-9]*", "@REF"));
33 addTest(new TestCase() {
34 private TestCase me
= setName("Anonymous inner class");
37 public void test() throws Exception
{
38 Data data
= new Data() {
41 String encoded
= new Exporter().append(data
).toString(false);
42 Object redata
= new Importer().read(encoded
).getValue();
43 String reencoded
= new Exporter().append(redata
)
46 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
47 reencoded
.replaceAll("@[0-9]*", "@REF"));
51 addTest(new TestCase("URL Import/Export") {
53 public void test() throws Exception
{
54 URL data
= new URL("https://fanfan.be/");
55 String encoded
= new Exporter().append(data
).toString(false);
56 Object redata
= new Importer().read(encoded
).getValue();
57 String reencoded
= new Exporter().append(redata
)
60 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
61 reencoded
.replaceAll("@[0-9]*", "@REF"));
65 addTest(new TestCase("URL-String Import/Export") {
67 public void test() throws Exception
{
68 String data
= new URL("https://fanfan.be/").toString();
69 String encoded
= new Exporter().append(data
).toString(false);
70 Object redata
= new Importer().read(encoded
).getValue();
71 String reencoded
= new Exporter().append(redata
)
74 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
75 reencoded
.replaceAll("@[0-9]*", "@REF"));
76 assertEquals(data
, redata
);
80 addTest(new TestCase("URL/URL-String arrays Import/Export") {
82 public void test() throws Exception
{
83 final String url
= "https://fanfan.be/";
85 Object
[] data
= new Object
[] { new URL(url
), url
};
86 String encoded
= new Exporter().append(data
).toString(false);
87 Object redata
= new Importer().read(encoded
).getValue();
88 String reencoded
= new Exporter().append(redata
)
91 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
92 reencoded
.replaceAll("@[0-9]*", "@REF"));
93 assertEquals(data
[0], ((Object
[]) redata
)[0]);
94 assertEquals(data
[1], ((Object
[]) redata
)[1]);
98 addTest(new TestCase("Import/Export with nested objects") {
100 public void test() throws Exception
{
101 Data data
= new DataObject(new Data(21));
102 String encoded
= new Exporter().append(data
).toString(false);
103 Object redata
= new Importer().read(encoded
).getValue();
104 String reencoded
= new Exporter().append(redata
)
107 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
108 reencoded
.replaceAll("@[0-9]*", "@REF"));
112 addTest(new TestCase("Import/Export with nested objects forming a loop") {
114 public void test() throws Exception
{
115 DataLoop data
= new DataLoop("looping");
116 data
.next
= new DataLoop("level 2");
117 data
.next
.next
= data
;
119 String encoded
= new Exporter().append(data
).toString(false);
120 Object redata
= new Importer().read(encoded
).getValue();
121 String reencoded
= new Exporter().append(redata
)
124 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
125 reencoded
.replaceAll("@[0-9]*", "@REF"));
129 addTest(new TestCase("Array in Object Import/Export") {
131 public void test() throws Exception
{
132 Object data
= new DataArray();// new String[] { "un", "deux" };
133 String encoded
= new Exporter().append(data
).toString(false);
134 Object redata
= new Importer().read(encoded
).getValue();
135 String reencoded
= new Exporter().append(redata
)
138 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
139 reencoded
.replaceAll("@[0-9]*", "@REF"));
143 addTest(new TestCase("Array Import/Export") {
145 public void test() throws Exception
{
146 Object data
= new String
[] { "un", "deux" };
147 String encoded
= new Exporter().append(data
).toString(false);
148 Object redata
= new Importer().read(encoded
).getValue();
149 String reencoded
= new Exporter().append(redata
)
152 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
153 reencoded
.replaceAll("@[0-9]*", "@REF"));
157 addTest(new TestCase("Enum Import/Export") {
159 public void test() throws Exception
{
160 Object data
= EnumToSend
.FANFAN
;
161 String encoded
= new Exporter().append(data
).toString(false);
162 Object redata
= new Importer().read(encoded
).getValue();
163 String reencoded
= new Exporter().append(redata
)
166 assertEquals(encoded
.replaceAll("@[0-9]*", "@REF"),
167 reencoded
.replaceAll("@[0-9]*", "@REF"));
173 public String
[] data
= new String
[] { "un", "deux" };
176 @SuppressWarnings("unused")
183 public Data(int value
) {
188 @SuppressWarnings("unused")
189 class DataObject
extends Data
{
192 @SuppressWarnings("synthetic-access")
193 private DataObject() {
196 @SuppressWarnings("synthetic-access")
197 public DataObject(Data data
) {
202 @SuppressWarnings("unused")
203 class DataLoop
extends Data
{
204 public DataLoop next
;
205 private String value
;
207 @SuppressWarnings("synthetic-access")
211 @SuppressWarnings("synthetic-access")
212 public DataLoop(String value
) {