public async Task HandleMemberSubscriptionAsync_UnsubscribedSubscriber_ShouldBeResubscribedWithStatusPending() { //arrange var nullLogger = new NullLogger <SubscriberService>(); var fakeRepository = new FakeMailchimpRepository(); var subscriberService = new SubscriberService(nullLogger, fakeRepository); var unsubscribedSubscriber = new NewSubscriberDto() { Email = "*****@*****.**", Name = "Unsubscribed", Source = "UnitTest" }; //assume var assumedMember = await fakeRepository.GetMemberAsync(unsubscribedSubscriber.Email); Assume.That( assumedMember?.Status == "unsubscribed", "Missing unsubscribed member in the collection"); //act await subscriberService.HandleMemberSubscriptionAsync(unsubscribedSubscriber); MemberDto receivedMember = await fakeRepository.GetMemberAsync(unsubscribedSubscriber.Email); //assert Assert.Equal(unsubscribedSubscriber.Email, receivedMember.EmailAddress); Assert.Equal("pending", receivedMember.Status); }
public async Task HandleMemberSubscriptionAsync_Pending_ShouldBeChangedByEmailsServiceToUnsubscribedThanPending() { //arrange var nullLogger = new NullLogger <SubscriberService>(); var fakeRepository = new FakeMailchimpRepository(); var subscriberService = new SubscriberService(nullLogger, fakeRepository); var newSubscriber = new NewSubscriberDto() { Email = "*****@*****.**", Name = "Marek", Source = "UnitTest" }; //act await subscriberService.HandleMemberSubscriptionAsync(newSubscriber); MemberDto receivedMember = await fakeRepository.GetMemberAsync(newSubscriber.Email); var memberHistory = fakeRepository.Members["*****@*****.**"]; //assert Assert.Equal(3, memberHistory.Count); Assert.Equal(newSubscriber.Email, receivedMember.EmailAddress); Assert.Equal("unsubscribed", memberHistory.ElementAt(1).Status); Assert.Equal("pending", receivedMember.Status); }
public async Task HandleMemberSubscriptionAsync_AlreadySubscribed_ShouldBeNotChanged() { //arrange var nullLogger = new NullLogger <SubscriberService>(); var fakeRepository = new FakeMailchimpRepository(); var subscriberService = new SubscriberService(nullLogger, fakeRepository); var subscribedSubscriber = new NewSubscriberDto() { Email = "*****@*****.**", Name = "Subscribed", Source = "UnitTest" }; //assume var assumedMember = await fakeRepository.GetMemberAsync(subscribedSubscriber.Email); Assume.That( assumedMember?.Status == "subscribed", "Missing subscribed member in the collection"); //act await subscriberService.HandleMemberSubscriptionAsync(subscribedSubscriber); MemberDto receivedMember = await fakeRepository.GetMemberAsync(subscribedSubscriber.Email); var memberChanges = fakeRepository.Members["*****@*****.**"]; //assert Assert.Single(memberChanges); Assert.Equal(subscribedSubscriber.Email, receivedMember.EmailAddress); Assert.Equal("subscribed", receivedMember.Status); }
public async Task HandleMemberSubscriptionAsync_NewSubscriber_ShouldBeAddedToEmailsServiceWithStatusPending() { //arrange var nullLogger = new NullLogger <SubscriberService>(); var fakeRepository = new FakeMailchimpRepository(); var subscriberService = new SubscriberService(nullLogger, fakeRepository); var newSubscriber = new NewSubscriberDto() { Email = "*****@*****.**", Name = "Marek", Source = "UnitTest" }; //act await subscriberService.HandleMemberSubscriptionAsync(newSubscriber); MemberDto receivedMember = await fakeRepository.GetMemberAsync(newSubscriber.Email); //assert Assert.Equal(newSubscriber.Email, receivedMember.EmailAddress); Assert.Equal("pending", receivedMember.Status); }