class TestDocumentMapper(unittest.TestCase): def setUp(self): self.document = Mock(Document) self.document.field_names.return_value = ('field1', 'field2', 'newname') self.mapper = DocumentMapper(self.document, {'oldname': 'newname'}) def test_given_document_when_encoding_then_maps_model_using_fields_in_document( self): model = Mock() model.field1 = u'value1' model.field2 = u'value2' model.field3 = u'value3' result = self.mapper.for_encoding(model) assert_that(result, has_entries({ u'field1': u'value1', u'field2': u'value2' })) def test_given_document_when_decoding_then_maps_dict_using_fields_in_document( self): mapping = { u'field1': u'value1', u'field2': u'value2', u'field3': u'value3' } result = self.mapper.for_decoding(mapping) assert_that(result, has_entries({ u'field1': u'value1', u'field2': u'value2' })) def test_given_document_when_decoding_then_ignores_fields_not_in_mapping( self): mapping = {u'field1': u'value1', u'whackyfield': u'whackyvalue'} result = self.mapper.for_decoding(mapping) assert_that(result, has_entries({u'field1': u'value1'})) def test_given_document_when_decoding_then_renames_fields_in_mapping(self): mapping = {u'oldname': u'value'} result = self.mapper.for_decoding(mapping) assert_that(result, has_entries({u'newname': u'value'}))
class TestDocumentMapper(unittest.TestCase): def setUp(self): self.document = Mock(Document) self.document.field_names.return_value = ('field1', 'field2', 'newname') self.mapper = DocumentMapper(self.document, {'oldname': 'newname'}) def test_given_document_when_encoding_then_maps_model_using_fields_in_document(self): model = Mock() model.field1 = u'value1' model.field2 = u'value2' model.field3 = u'value3' result = self.mapper.for_encoding(model) assert_that(result, has_entries({u'field1': u'value1', u'field2': u'value2'})) def test_given_document_when_decoding_then_maps_dict_using_fields_in_document(self): mapping = {u'field1': u'value1', u'field2': u'value2', u'field3': u'value3'} result = self.mapper.for_decoding(mapping) assert_that(result, has_entries({u'field1': u'value1', u'field2': u'value2'})) def test_given_document_when_decoding_then_ignores_fields_not_in_mapping(self): mapping = {u'field1': u'value1', u'whackyfield': u'whackyvalue'} result = self.mapper.for_decoding(mapping) assert_that(result, has_entries({u'field1': u'value1'})) def test_given_document_when_decoding_then_renames_fields_in_mapping(self): mapping = {u'oldname': u'value'} result = self.mapper.for_decoding(mapping) assert_that(result, has_entries({u'newname': u'value'}))
def setUp(self): self.document = Mock(Document) self.document.field_names.return_value = ('field1', 'field2', 'newname') self.mapper = DocumentMapper(self.document, {'oldname': 'newname'})