Major reorganization
[ton] / test_don.py
index 8541e74..5ca30e1 100644 (file)
@@ -2,8 +2,7 @@ import collections
 import unittest
 
 import don
-import don.binary as binary
-import don.string as string
+from don import binary, string
 
 class TestBinarySerialize(unittest.TestCase):
     def test_serializes_null(self):
@@ -116,9 +115,82 @@ class TestBinaryDeserialize(unittest.TestCase):
 
 
 class TestStringSerialize(unittest.TestCase):
-    pass
+    def test_serializes_null(self):
+        self.assertEqual(string.serialize(None), 'null')
+
+    def test_serializes_true(self):
+        self.assertEqual(string.serialize(True), 'true')
+
+    def test_serializes_false(self):
+        self.assertEqual(string.serialize(False), 'false')
+
+    def test_serializes_int8(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT8, 1)), '1i8')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT8, -1)), '-1i8')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT8, 42)), '42i8')
+
+    def test_serializes_int16(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT16, 1)), '1i16')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT16, -1)), '-1i16')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT16, 42)), '42i16')
+
+    def test_serializes_int32(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT32, 1)), '1i32')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT32, -1)), '-1i32')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT32, 42)), '42i32')
+
+    def test_serializes_int64(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT64, 1)), '1i64')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT64, -1)), '-1i64')
+        self.assertEqual(string.serialize(don.TaggedObject(don.INT64, 42)), '42i64')
+
+    def test_serializes_float(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.FLOAT, 1.0)), '1.0f')
 
-class TestStringDeserialize(unittest.TestCase):
-    pass
+    def test_serializes_double(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.DOUBLE, 1.0)), '1.0d')
+
+    def test_serializes_binary(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.BINARY, b'\xde\xad\xbe\xef')), '"deadbeef"b')
+
+    def test_serializes_utf8(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.UTF8, 'Hello, world')), '"Hello, world"utf8')
+
+    def test_serializes_utf16(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.UTF16, 'Hello, world')), '"Hello, world"utf16')
+
+    def test_serializes_utf32(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.UTF32, 'Hello, world')), '"Hello, world"utf32')
+
+    def test_serializes_list(self):
+        self.assertEqual(string.serialize(don.TaggedObject(don.LIST, [1,2,3])), '[1i32, 2i32, 3i32]')
+
+    def test_serializes_dictionary(self):
+        self.assertEqual(
+            string.serialize(don.TaggedObject(don.DICTIONARY, collections.OrderedDict([
+                ('foo', 1),
+                ('bar', 'baz'),
+            ]))),
+            '{ "foo"utf8: 1i32, "bar"utf8: "baz"utf8 }'
+        )
+
+#   class TestStringDeserialize(unittest.TestCase):
+#       def test_deserializes_null(self):
+#           self.assertEqual(
+#               None,
+#               string.deserialize('null'),
+#           )
+#       
+#       def test_deserializes_null(self):
+#           self.assertEqual(
+#               True,
+#               string.deserialize('true'),
+#           )
+#       
+#       def test_deserializes_null(self):
+#           self.assertEqual(
+#               False,
+#               string.deserialize('false'),
+#           )
 
 unittest.main()