diff --git a/Makefile b/Makefile index 60510ef..5bfebc0 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,7 @@ all: check: $(PYTHON) -m unittest \ + $(TEST).serialization_test \ $(TEST).scheduler_test \ $(TEST).roulette_test # $(TEST).reader_test \ diff --git a/serialization/json/json.py b/serialization/json/json.py new file mode 100644 index 0000000..facb8c7 --- /dev/null +++ b/serialization/json/json.py @@ -0,0 +1,14 @@ +import json + + +class Json: + + def serialize(data): + if type(data) is dict: + return json.dumps(data) + + def deserialize(data): + if type(data) is str: + return json.loads(data) + + diff --git a/serialization/serializer.py b/serialization/serializer.py new file mode 100644 index 0000000..4e0597b --- /dev/null +++ b/serialization/serializer.py @@ -0,0 +1,10 @@ +class Serializer: + def __init__(self, serialize_obj): + self.serialize_obj = serialize_obj + + def serialize(self, data): + return self.serialize_obj.serialize(data) + + def deserialize(self, data): + return self.serialize_obj.deserialize(data) + diff --git a/tests/serialization_test.py b/tests/serialization_test.py new file mode 100644 index 0000000..e452f78 --- /dev/null +++ b/tests/serialization_test.py @@ -0,0 +1,23 @@ +import unittest +import json +from tests.testsuites.serialization.test_json import * + + +class SerializationTestcase(unittest.TestCase): + def setUp(self): + self.raw_data = "{\"name\":\"john\",\"age\":22,\"class\":\"mca\"}" + self.dict_data = {'age': 22, 'class': 'mca', 'name': 'john'} + + assert self.raw_data != '' + assert self.dict_data != None + + def test_json_serialize(self): + expected = self.raw_data + result = json_serialize(self.dict_data) + self.assertDictEqual(json_deserialize( + expected), json_deserialize(result)) + + def test_json_deserialize(self): + expected = self.dict_data + result = json_deserialize(self.raw_data) + self.assertDictEqual(expected, result) diff --git a/tests/testsuites/serialization/test_json.py b/tests/testsuites/serialization/test_json.py new file mode 100644 index 0000000..200751f --- /dev/null +++ b/tests/testsuites/serialization/test_json.py @@ -0,0 +1,12 @@ +from serialization import serializer +from serialization.json import json + + +def json_serialize(dict_data): + Serializer = serializer.Serializer(json.Json) + return Serializer.serialize(dict_data) + + +def json_deserialize(raw_data): + Serializer = serializer.Serializer(json.Json) + return Serializer.deserialize(raw_data)