public async Task A_subscriber_should_received_a_published_event()
        {
            var addSubscriptionRequest = new AddSubscriptionRequest
            {
                Name = "MySub"
            };
            var response = await _subscriberClient.PostAsJson(addSubscriptionRequest, "hooks");

            var addSubscriptionResponse = await response.Content.ReadAs <AddSubscriptionResponse>();

            var addWebHookRequest = new AddWebHookRequest
            {
                Secret           = addSubscriptionResponse.Secret,
                PayloadTargetUri =
                    new Uri($"http://subscriber.example.com/{addSubscriptionResponse.PayloadTargetRelativeUri}"),
                Enabled            = true,
                SubscriptionChoice = SubscriptionChoice.Everything
            };
            await _publisherClient.PostAsJson(addWebHookRequest, "hooks");

            var eventName = "foo";
            var json      = "{ \"id\": 1 }";
            await _webHookPublisher.QueueEvent(eventName, json);

            await _webHookPublisher.DeliverNow();
        }
        private static AddWebHookRequest CreateAddWebHookRequest(
            string payloadTargetUri = "http://subscriber.example.com/sink",
            string secret           = "secret")
        {
            var addWebHook = new AddWebHookRequest
            {
                PayloadTargetUri   = new Uri(payloadTargetUri),
                Enabled            = true,
                SubscribeToEvents  = new[] { "foo", "bar" },
                SubscriptionChoice = SubscriptionChoice.SelectedEvents,
                Secret             = secret
            };

            return(addWebHook);
        }
 private async Task <Uri> CreateWebHook(AddWebHookRequest request)
 {
     return((await _publisherClient.PostAsJson(request, "hooks")).Headers.Location);
 }