X-Git-Url: http://nitlanguage.org diff --git a/tests/test_deserialization.nit b/tests/test_deserialization.nit index d443795..deb07b7 100644 --- a/tests/test_deserialization.nit +++ b/tests/test_deserialization.nit @@ -20,13 +20,12 @@ import json_serialization # Simple class class A auto_serializable - super Serializable - var b: Bool + var b = false var c: Char var f: Float - var i: Int - var s: String + var i = 123 + var s = "asdf" var n: nullable Int init(b: Bool, c: Char, f: Float, i: Int, s: String, n: nullable Int) @@ -63,10 +62,9 @@ end # Composed of an A and a B class C auto_serializable - super Serializable var a: A - var b: B + var b = new B(false, 'b', 123.123, 2345, "hjkl", 12, 1111, "qwer") var aa: A init(a: A, b: B) @@ -89,14 +87,44 @@ class D redef fun to_s do return "" end +# Class with generics +class E + auto_serializable + + var a = new Array[Object].with_items("hello", 1234, 123.4) + var b = new Array[nullable Serializable].with_items("hella", 2345, 234.5) + init do end + + redef fun to_s do return "" +end + +# Class with generics +class F[N: Numeric] + auto_serializable + + var n: N + init(n: N) do self.n = n + + redef fun to_s do return "" +end + var a = new A(true, 'a', 0.1234, 1234, "asdf", null) var b = new B(false, 'b', 123.123, 2345, "hjkl", 12, 1111, "qwer") var c = new C(a, b) var d = new D(false, 'b', 123.123, 2345, "new line ->\n<-", null, 1111, "\t\f\"\r\\/") d.d = d +var e = new E +var fi = new F[Int](2222) +var ff = new F[Float](33.33) + +# Default works only with Nit serial +var tests = new Array[Serializable].with_items(a, b, c, d, e, fi, ff) + +# Alt1 should work without nitserial +#alt1# tests = new Array[Serializable].with_items(a, b, c, d) -for o in new Array[nullable Serializable].with_items(a, b, c, d) do - var stream = new StringOStream +for o in tests do + var stream = new StringWriter var serializer = new JsonSerializer(stream) serializer.serialize(o) @@ -105,5 +133,5 @@ for o in new Array[nullable Serializable].with_items(a, b, c, d) do print "# Nit:\n{o}\n" print "# Json:\n{stream}\n" - print "# Back in Nit:\n{deserialized}\n" + print "# Back in Nit:\n{deserialized or else "null"}\n" end