def test_apply_with_empty_cell_data(self): # given: cell_conversion = LinkedIdentityCellConversion('item.item_number', 'line_order') # and: metadata = MetadataEntity() items = ['item_no_56', 'item_no_199'] metadata.add_links('line_order', items) # when: cell_conversion.apply(metadata, '') # then: actual_items = metadata.get_links('line_order') self.assertEqual(2, len(actual_items)) # and: expected_ids = [id for id in items] for expected_id in expected_ids: self.assertTrue(expected_id in actual_items, f'[{expected_id}] not in list.') self.assertFalse('' in actual_items, f" '' should not be in the list.")
def test_add_links(self): # given: metadata = MetadataEntity() # when: new_links = ['73f909', '83fddf1', '9004811'] metadata.add_links('profile', new_links) # then: profile_links = metadata.get_links('profile') self.assertIsNotNone(profile_links) self.assertCountEqual(new_links, profile_links)
def test_add_links_multiple_times(self): # given: metadata = MetadataEntity() # and: batch_1 = ['78de112', '963fefed'] batch_2 = ['2daab01'] # when: metadata.add_links('item', batch_1) metadata.add_links('item', batch_2) # then: item_links = metadata.get_links('item') self.assertIsNotNone(item_links) self.assertCountEqual(batch_1 + batch_2, item_links)
def test_apply(self): # given: cell_conversion = LinkedIdentityCellConversion('item.item_id', 'item_type') # and: metadata = MetadataEntity() # when: cell_conversion.apply(metadata, 'item_no_29') cell_conversion.apply(metadata, 'item_no_31||item_no_50') # then: item_types = metadata.get_links('item_type') self.assertEqual(3, len(item_types)) # and: expected_items = [f'item_no_{number}' for number in [29, 31, 50]] for expected_item in expected_items: self.assertTrue(expected_item in item_types, f'[{expected_item}] not in list.')
def test_apply_with_previous_entry(self): # given: cell_conversion = LinkedIdentityCellConversion('item.item_number', 'line_order') # and: metadata = MetadataEntity() items = ['item_no_56', 'item_no_199'] metadata.add_links('line_order', items) # when: cell_conversion.apply(metadata, 'item_no_721') # then: actual_items = metadata.get_links('line_order') self.assertEqual(3, len(actual_items)) # and: expected_ids = [id for id in items] expected_ids.append('item_no_721') for expected_id in expected_ids: self.assertTrue(expected_id in actual_items, f'[{expected_id}] not in list.')