def test_it_cannot_set_tuples_as_metadata_value(self):
     domain_event = EventA("0A919B3E-5BCB-41DC-B157-8A9E2A7198B", "foo")
     obj = object()
     with self.assertRaises(DomainEventException) as ex:
         domain_event.add_metadata("foo", obj)
     self.assertEqual(str(ex.exception),
                      "Can only set metadata with simple data types (bool, dict, int, list, string)")
 def test_it_cannot_have_duplicate_metadata(self):
     domain_event = EventA("0A919B3E-5BCB-41DC-B157-8A9E2A7198B", "foo")
     domain_event.add_metadata("foo", "bar")
     with self.assertRaises(DomainEventException) as ex:
         domain_event.add_metadata("foo", "bar")
     self.assertEqual(str(ex.exception), 'Metadata is already set!')
 def test_it_can_add_metadata_with_a_string_as_value(self):
     domain_event = EventA("0A919B3E-5BCB-41DC-B157-8A9E2A7198BE", "foo")
     domain_event.add_metadata("foo", "bar")
     self.assertEqual(domain_event.get_metadata(), [{"foo": "bar"}])
 def test_it_can_add_metadata_with_a_list_as_value(self):
     domain_event = EventA("0A919B3E-5BCB-41DC-B157-8A9E2A7198BE", "foo")
     domain_event.add_metadata("foo", ['bar', 'baz'])
     self.assertEqual(domain_event.get_metadata(), [{"foo": ['bar', 'baz']}])
 def test_it_can_remove_metadata(self):
     domain_event = EventA("0A919B3E-5BCB-41DC-B157-8A9E2A7198BE", "foo")
     domain_event.add_metadata("foo", "bar")
     self.assertEqual(domain_event.get_metadata(), [{"foo": "bar"}])
     domain_event.remove_metadata("foo", "bar")
     self.assertEqual(domain_event.get_metadata(), [])