def test_snapshot_event_transform(self):
        LOG.debug('Test tactual transform action for '
                  'snapshot and snapshot init events')

        # Test setup
        spec_list = mock_sync.simple_instance_generators(
            host_num=1,
            vm_num=1,
            snapshot_events=10,
            update_events=0
        )
        instance_events = mock_sync.generate_random_events_list(spec_list)

        for event in instance_events:
            # Test action
            instance_transformer = InstanceTransformer(self.transformers)
            wrapper = instance_transformer.transform(event)

            # Test assertions
            self._validate_vertex_props(wrapper.vertex, event)

            # Validate the neighbors: only one  valid host neighbor
            self.assertEqual(
                1,
                len(wrapper.neighbors),
                'Instance has only one host neighbor'
            )
            host_neighbor = wrapper.neighbors[0]
            self._validate_host_neighbor(host_neighbor, event)

            sync_mode = event['sync_mode']

            if sync_mode == SyncMode.INIT_SNAPSHOT:
                self.assertEqual(EventAction.CREATE, wrapper.action)
            elif sync_mode == SyncMode.SNAPSHOT:
                self.assertEqual(EventAction.UPDATE, wrapper.action)
    def test_update_event_transform(self):
        LOG.debug('Test tactual transform action for update events')

        # Test setup
        spec_list = mock_sync.simple_instance_generators(
            host_num=1,
            vm_num=1,
            snapshot_events=0,
            update_events=10
        )
        instance_events = mock_sync.generate_random_events_list(spec_list)

        for event in instance_events:
            # Test action
            instance_transformer = InstanceTransformer(self.transformers)
            wrapper = instance_transformer.transform(event)

            # Test assertions
            self._validate_vertex_props(wrapper.vertex, event)

            # Validate the neighbors: only one  valid host neighbor
            self.assertEqual(
                1,
                len(wrapper.neighbors),
                'Instance has only one host neighbor'
            )
            host_neighbor = wrapper.neighbors[0]
            self._validate_host_neighbor(host_neighbor, event)

            event_type = event['event_type']
            if event_type == 'compute.instance.delete.end':
                self.assertEqual(EventAction.DELETE, wrapper.action)
            elif event_type == 'compute.instance.create.start':
                self.assertEqual(EventAction.CREATE, wrapper.action)
            else:
                self.assertEqual(EventAction.UPDATE, wrapper.action)