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)); }
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); }
public void CanBulkInsertSubscribers() { var actual = subscriberFactoryFixture.CreateComplexUniqueModifyDripSubscribers(23); var result = dripClientFixture.Client.CreateOrUpdateSubscribers(actual); DripAssert.Success(result, HttpStatusCode.Created); }
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. }
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); }
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); }
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); }
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); }
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); }