def test_sendEvent_should_use_kwargs_as_event_items(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = "broadcaster-target"
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(
            mock_broadcaster,
            "event-id",
            "event-data",
            tracking_id="tracking-id",
            target="target",
            state="foobar",
            bar="baz",
        )

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(
            call(
                "target",
                {
                    "payload": "event-data",
                    "type": "event",
                    "id": "event-id",
                    "tracking_id": "tracking-id",
                    "target": "target",
                    "state": "foobar",
                    "bar": "baz",
                },
            ),
            actual_call,
        )
    def test_sendEvent_should_not_drop_data_when_connection(self, check_connection):
        check_connection.return_value = True
        ybc = WampBroadcaster("host", 42)
        ybc.target = "broadcaster-target"
        ybc.logger = Mock()
        ybc.client = Mock()

        WampBroadcaster._sendEvent(ybc, "event-id", "event-data", tracking_id="tracking-id", target="target")

        self.assertTrue(ybc.client.publish.called)
    def test_sendEvent_should_not_drop_data_when_connection(self, check_connection):
        check_connection.return_value = True
        ybc = WampBroadcaster('host', 42)
        ybc.target = 'broadcaster-target'
        ybc.logger = Mock()
        ybc.client = Mock()

        WampBroadcaster._sendEvent(ybc,
                                   'event-id',
                                   'event-data',
                                   tracking_id='tracking-id',
                                   target='target')

        self.assertTrue(ybc.client.publish.called)
    def test_sendEvent_should_publish_expected_event_on_default_target(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = 'broadcaster-target'
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(
            mock_broadcaster, 'event-id', 'event-data', tracking_id='tracking-id')

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(call('broadcaster-target', {'payload': 'event-data',
                                                     'type': 'event',
                                                     'id': 'event-id',
                                                     'tracking_id': 'tracking-id',
                                                     'target': 'broadcaster-target'}
                              ), actual_call)
    def test_sendEvent_should_publish_expected_event_on_default_target(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = "broadcaster-target"
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(mock_broadcaster, "event-id", "event-data", tracking_id="tracking-id")

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(
            call(
                "broadcaster-target",
                {
                    "payload": "event-data",
                    "type": "event",
                    "id": "event-id",
                    "tracking_id": "tracking-id",
                    "target": "broadcaster-target",
                },
            ),
            actual_call,
        )
    def test_sendEvent_should_use_kwargs_as_event_items(self):
        mock_broadcaster = Mock(WampBroadcaster)
        mock_broadcaster.target = 'broadcaster-target'
        mock_broadcaster.logger = Mock()
        mock_broadcaster.client = Mock()

        WampBroadcaster._sendEvent(mock_broadcaster,
                                   'event-id',
                                   'event-data',
                                   tracking_id='tracking-id',
                                   target='target',
                                   state='foobar',
                                   bar='baz')

        actual_call = mock_broadcaster.client.publish.call_args
        self.assertEqual(call('target', {'payload': 'event-data',
                                         'type': 'event',
                                         'id': 'event-id',
                                         'tracking_id': 'tracking-id',
                                         'target': 'target',
                                         'state': 'foobar',
                                         'bar': 'baz'}
                              ), actual_call)