def test_create_relationship(self): data_object = DataObject("$testRequest", {}) self.assertEqual(data_object.relationships, []) data_object.create_field("messages", "O2M, $messageResponse") self.assertEqual(len(data_object.relationships), 1) self.assertEqual(data_object.relationships[0].name, "messages") self.assertEqual(data_object.relationships[0].relationship_type, "O2M") self.assertEqual(data_object.relationships[0].related_object, "$messageResponse")
def test_create_field(self): data_object = DataObject("$testRequest", {}) self.assertEqual(data_object.fields, []) data_object.create_field("username", "string, optional") self.assertEqual(len(data_object.fields), 1) self.assertEqual(data_object.fields[0].name, "username") self.assertEqual(data_object.fields[0].field_type, "string") self.assertEqual(data_object.fields[0].optional, True)
def test_has_id_field(self): request_object = DataObject("$postRequest", {"title": "string"}) self.assertFalse(Parameter.has_id_field(request_object)) request_object = DataObject("$postUpdateRequest", { "id": "int,primarykey", "title": "string" }) self.assertTrue(Parameter.has_id_field(request_object))
def test_data_object_properties(self): data_object = DataObject("$testResponse", { "username": "******", "messages": "O2M,$messageResponse" }) properties = data_object.properties() self.assertEqual(len(properties), 2) self.assertEqual(properties[0].name, 'username') self.assertIsInstance(properties[0], Field) self.assertEqual(properties[1].name, 'messages') self.assertIsInstance(properties[1], Relationship)
def test_create_objc_id_parameter(self): request_object = DataObject("$postRequest", {"title": "string"}) self.assertIsNone( ObjCParameter.create_id_parameter("/post/", request_object)) self.assertIsNotNone( ObjCParameter.create_id_parameter("/post/:id/", request_object)) request_object = DataObject("$postUpdateRequest", { "id": "int,primarykey", "title": "string" }) self.assertIsNone( ObjCParameter.create_id_parameter("/post/:id/", request_object))
def test_relationship_mapping_template(self): post_object = DataObject('$postResponse', { 'id': 'int,primarykey', 'title': 'string', 'body': 'string' }) user_object = DataObject('$userResponse', {'id': 'int,primarykey'}) relationship = Relationship('user', ["M2O", "$userResponse"]) relationship.related_object = user_object self.assertTemplateEqual('relationship_mapping.j2', 'RelationshipMapping.swift', { 'data_object': post_object, 'relationship': relationship })
def test_api_method_template(self): api = GetAPI( "post/", { "#meta": "oauth2", "request": "$postRequest", "response": { "200+": "$postResponse" } }) # Mock schema object schema = { 'data_objects': { '$postRequest': DataObject("$postRequest", { 'body': 'string', 'title': 'string' }) } } self.assertTemplateEqual( 'api_method.j2', 'APIMethod.swift', { 'api': api, 'schema': schema, 'VIDEO_FIELD': Field.VIDEO, 'IMAGE_FIELD': Field.IMAGE, })
def test_get_object_name(self): data_object = DataObject("$postRequest", {}) self.assertEqual(BaseTemplateMethods.get_object_name(data_object), "postRequest") self.assertEqual( BaseTemplateMethods.get_object_name(data_object, upper_camel_case=True), "PostRequest")
def test_entity_mapping_template(self): data_object = DataObject('$postResponse', { 'id': 'int,primarykey', 'title': 'string', 'body': 'string' }) self.assertTemplateEqual('entity_mapping.j2', 'EntityMapping.swift', { 'data_object': data_object, 'sanitize_field_name': sanitize_field_name })
def test_generate_objc_field_parameters(self): request_object = DataObject("$postUpdateRequest", { "id": "int,primarykey", "title": "string", "tags": "M2M,$tagRequest" }) parameters = ObjCParameter.generate_field_parameters(request_object) self.assertEqual(parameters[0].name, "id") self.assertEqual(parameters[0].objc_type, "NSNumber*") self.assertEqual(parameters[1].name, "title") self.assertEqual(parameters[1].objc_type, "NSString*")
def test_generate_swift_field_parameters(self): request_object = DataObject("$postUpdateRequest", { "id": "int,primarykey", "title": "string", "tags": "M2M,$tagRequest" }) parameters = SwiftParameter.generate_field_parameters(request_object) self.assertEqual(parameters[0].name, "id") self.assertEqual(parameters[0].swift_type, "Int") self.assertEqual(parameters[1].name, "title") self.assertEqual(parameters[1].swift_type, "String")
def test_empty_data_object_properties(self): data_object = DataObject("$testRequest", {}) self.assertEqual(data_object.properties(), [])