def test_notifications_empty_no_send(valid_message_dicts):
    message_dict = valid_message_dicts[0]
    m = protocol.Message.from_dict(message_dict)
    print(m)
    notifications = mock.Mock()
    notifications.get_job.return_value = ()
    delivery_outbox = mock.Mock()
    subscriptions = mock.Mock()
    subscriptions.get_subscriptions_by_pattern.return_value = {mock.Mock(callback_url='https://foo.com/bar'), }
    use_case = DispatchMessageToSubscribersUseCase(
        notifications,
        delivery_outbox,
        subscriptions)
    use_case.execute()

    assert not delivery_outbox.post_job.called
def test_delivery_enqueued(valid_message_dicts):
    message_dict = valid_message_dicts[0]
    notifications = mock.Mock()
    notifications.get_job.return_value = (1234, message_dict)
    delivery_outbox = mock.Mock()
    delivery_outbox.post_job.return_value = True
    subscriptions = mock.Mock()
    subscriptions.search.return_value = ['https://foo.com/bar', ]
    use_case = DispatchMessageToSubscribersUseCase(
        notifications,
        delivery_outbox,
        subscriptions)
    use_case.execute()

    assert delivery_outbox.post_job.called
    assert notifications.delete.called