X-Git-Url: http://nitlanguage.org diff --git a/tests/test_deserialization.nit b/tests/test_deserialization.nit index f26bcbf..c0f1045 100644 --- a/tests/test_deserialization.nit +++ b/tests/test_deserialization.nit @@ -15,29 +15,20 @@ # limitations under the License. import serialization -import json_serialization # Simple class class A auto_serializable - var b = false + var b: Bool var c: Char var f: Float - var i = 123 - var s = "asdf" + var i: Int + var s: String is serialize_as "serialization_specific_name" var n: nullable Int + var password = "p4ssw0rd" is lazy, noserialize - init(b: Bool, c: Char, f: Float, i: Int, s: String, n: nullable Int) - do - self.b = b - self.c = c - self.f = f - self.i = i - self.s = s - end - - redef fun to_s do return "" + redef fun to_s do return "" end # Sub-class of A @@ -48,14 +39,6 @@ class B var ii: Int var ss: String - init(b: Bool, c: Char, f: Float, i: Int, s: String, n: nullable Int, ii: Int, ss: String) - do - super(b, c, f, i, s, n) - - self.ii = ii - self.ss = ss - end - redef fun to_s do return "" end @@ -64,16 +47,9 @@ class C auto_serializable var a: A - var b = new B(false, 'b', 123.123, 2345, "hjkl", 12, 1111, "qwer") + var b: B var aa: A - init(a: A, b: B) - do - self.a = a - self.b = b - self.aa = a - end - redef fun to_s do return "" end @@ -93,7 +69,6 @@ class E 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 @@ -103,9 +78,8 @@ class F[N: Numeric] auto_serializable var n: N - init(n: N) do self.n = n - redef fun to_s do return "" + redef fun to_s do return "" end # Other collections @@ -133,31 +107,23 @@ class G "hm: {hm.join(", ", ". ")}; am: {am.join(", ", ". ")}>" 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) -var g = new G - -# Default works only with Nit serial -var tests = [a, b, c, d, e, fi, ff, g: Serializable] - -# Alt1 should work without nitserial -#alt1# tests = new Array[Serializable].with_items(a, b, c, d) - -for o in tests do - var stream = new StringWriter - var serializer = new JsonSerializer(stream) - serializer.serialize(o) - - var deserializer = new JsonDeserializer(stream.to_s) - var deserialized = deserializer.deserialize - - print "# Nit:\n{o}\n" - print "# Json:\n{stream}\n" - print "# Back in Nit:\n{deserialized or else "null"}\n" +class TestEntities + 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, a) + var d = new D(false, 'b', 123.123, 2345, "new line ->\n<-", null, 1111, "\t\f\"\r\\/") + init do d.d = d + var e = new E + var fi = new F[Int](2222) + var ff = new F[Float](33.33) + var g = new G + + # should work without nitserial + var without_generics: Array[Serializable] = [a, b, c, d: Serializable] + + # Default works only with Nit serial + var with_generics: Array[Serializable] = [a, b, c, d, e, fi, ff, g: Serializable] end + +# We instantiate it here so that `nitserial` detects generic types as being alive +var entities = new TestEntities