Beispiel #1
0
        public void CanApplyAndRemoveTags()
        {
            var originalSubscriber = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscriber();

            dripClientFixture.Client.CreateOrUpdateSubscriber(originalSubscriber);

            var newTag = Guid.NewGuid().ToString("n");

            var result = dripClientFixture.Client.ApplyTagToSubscriber(originalSubscriber.Email, newTag);

            DripAssert.Success(result, HttpStatusCode.Created);

            var oldTag = originalSubscriber.Tags[0];

            result = dripClientFixture.Client.RemoveTagFromSubscriber(originalSubscriber.Email, oldTag);
            DripAssert.Success(result, HttpStatusCode.NoContent);

            var subscriberResult = dripClientFixture.Client.GetSubscriber(originalSubscriber.Email);

            DripAssert.Success(subscriberResult);

            var newSubscriber = subscriberResult.Subscribers.First();

            Assert.True(newSubscriber.Tags.Contains(newTag));
            Assert.False(newSubscriber.Tags.Contains(oldTag));
        }
Beispiel #2
0
        public void CanCreateUpdateAndRetrieveSubscriber()
        {
            var expected = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscriber();

            var result = dripClientFixture.Client.CreateOrUpdateSubscriber(expected);

            DripAssert.Success(result, HttpStatusCode.OK);

            result = dripClientFixture.Client.GetSubscriber(expected.Email);
            DripAssert.Success(result, HttpStatusCode.OK);
            Assert.Equal(1, result.Subscribers.Count);

            var actual = result.Subscribers.First();

            DripAssert.Equal(expected.CustomFields, actual.CustomFields);
            DripAssert.ContainsSameItems(expected.Tags, actual.Tags);

            var oldEmail = expected.Email;

            expected.NewEmail = subscriberFactoryFixture.GetRandomEmailAddress();
            result            = dripClientFixture.Client.CreateOrUpdateSubscriber(expected);
            Assert.True(result.HasSuccessStatusCode());
            Assert.False(result.HasErrors());

            result = dripClientFixture.Client.GetSubscriber(expected.NewEmail);
            DripAssert.Success(result, HttpStatusCode.OK);
            Assert.Equal(1, result.Subscribers.Count);

            actual = result.Subscribers.First();
            Assert.Equal(expected.NewEmail, actual.Email);
            DripAssert.Equal(expected.CustomFields, actual.CustomFields);
            DripAssert.ContainsSameItems(expected.Tags, actual.Tags);
        }
Beispiel #3
0
        public void CanBulkInsertSubscribers()
        {
            var actual = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscribers(23);
            var result = dripClientFixture.Client.CreateOrUpdateSubscribers(actual);

            DripAssert.Success(result, HttpStatusCode.Created);
        }
Beispiel #4
0
        public async Task CanTrackEventAsync()
        {
            var subscriber       = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscriber();
            var subscriberResult = await dripClientFixture.Client.CreateOrUpdateSubscriberAsync(subscriber);

            DripAssert.Success(subscriberResult);

            //simple event
            var result = await dripClientFixture.Client.TrackEventAsync(new DripEvent { Action = "hello", Email = subscriber.Email });

            DripAssert.Success(result, HttpStatusCode.NoContent);

            //more complex event
            result = await dripClientFixture.Client.TrackEventAsync(
                new DripEvent
            {
                Action        = "hello2",
                Email         = subscriber.Email,
                PotentialLead = true,
                Properties    = new Dictionary <string, string> {
                    { "value", "100" }
                }
            });

            DripAssert.Success(result, HttpStatusCode.NoContent);

            //There is no API for reading events so we can't verify the contents from here. Look in your Dashboard.
        }
Beispiel #5
0
        public async Task CanBulkInsertSubscribersAsync()
        {
            var actual = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscribers(29);
            var result = await dripClientFixture.Client.CreateOrUpdateSubscribersAsync(actual);

            //TODO: Fix server and/or RestSharp
            //This operation succeeds, but it looks like the server returns a content-type of json with a non-empty, but non-JSON result.
            //This causes RestSharp to try to parse the body, which isn't empty, as JSON, which throws an error.
            DripAssert.Success(result, HttpStatusCode.Created);
        }
Beispiel #6
0
        public async Task CanRemoveNonExistantTagAsync()
        {
            var originalSubscriber = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscriber();
            await dripClientFixture.Client.CreateOrUpdateSubscriberAsync(originalSubscriber);

            var tag    = Guid.NewGuid().ToString();
            var result = await dripClientFixture.Client.RemoveTagFromSubscriberAsync(originalSubscriber.Email, tag);

            DripAssert.Success(result, HttpStatusCode.NoContent);
        }
Beispiel #7
0
        public async Task CanTrackEventForNewUserAsync()
        {
            //event for brand new subscriber
            var newSubscriber = subscriberFactoryFixture.GetRandomEmailAddress();
            var result        = await dripClientFixture.Client.TrackEventAsync(new DripEvent { Action = "hello", Email = newSubscriber });

            DripAssert.Success(result, HttpStatusCode.NoContent);

            var subscriberResult = await dripClientFixture.Client.GetSubscriberAsync(newSubscriber);

            DripAssert.Success(subscriberResult);
        }
Beispiel #8
0
        public void CanBulkInsertEvents()
        {
            //one new user
            var events = CreateComplexDripEvents(324, subscriberFactoryFixture.GetRandomEmailAddress());
            var result = dripClientFixture.Client.TrackEvents(events);

            DripAssert.Success(result, HttpStatusCode.Created);

            //all new users
            events = CreateComplexDripEvents(19);
            result = dripClientFixture.Client.TrackEvents(events);
            DripAssert.Success(result, HttpStatusCode.Created);
        }
Beispiel #9
0
        public void ApplyingTagCreatesSubscriber()
        {
            var email  = subscriberFactoryFixture.GetRandomEmailAddress();
            var tag    = Guid.NewGuid().ToString();
            var result = dripClientFixture.Client.ApplyTagToSubscriber(email, tag);

            DripAssert.Success(result, HttpStatusCode.Created);

            var subscriberResult = dripClientFixture.Client.GetSubscriber(email);

            DripAssert.Success(subscriberResult);

            var newSubscriber = subscriberResult.Subscribers.First();

            Assert.True(newSubscriber.Tags.Contains(tag));
        }
        public void CanSubscribeNewSubscriberToCampaignAndThenUnsubscribeFromAll()
        {
            var newSubscriber   = subscriberFactoryFixture.GetRandomEmailAddress();
            var campaignRequest = new ModifyDripCampaignSubscriberRequest {
                Email = newSubscriber
            };
            var result = dripClientFixture.Client.SubscribeToCampaign(TestCampaignId, campaignRequest);

            DripAssert.Success(result, HttpStatusCode.Created);

            var subscriberResult = dripClientFixture.Client.GetSubscriber(newSubscriber);

            DripAssert.Success(subscriberResult);

            subscriberResult = dripClientFixture.Client.UnsubscribeFromCampaign(newSubscriber);
            //TODO: this is a mismatch with the docs. Docs say it will be "200 OK"
            DripAssert.Success(result, HttpStatusCode.Created);
        }
        public void CanSubscribeExistingSubscriberToCampaignAndThenUnsubscribe()
        {
            var subscriber       = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscriber();
            var subscriberResult = dripClientFixture.Client.CreateOrUpdateSubscriber(subscriber);

            DripAssert.Success(subscriberResult);

            var campaignRequest = new ModifyDripCampaignSubscriberRequest {
                Email = subscriber.Email
            };
            var result = dripClientFixture.Client.SubscribeToCampaign(TestCampaignId, campaignRequest);

            DripAssert.Success(result, HttpStatusCode.Created);

            subscriberResult = dripClientFixture.Client.UnsubscribeFromCampaign(subscriber.Email, TestCampaignId);
            //TODO: this is a mismatch with the docs. Docs say it will be "200 OK"
            DripAssert.Success(result, HttpStatusCode.Created);
        }