public void ChangeSubscriptionShouldRemoveSubscriptionFromRepositoryAndSendConfirmationIfAllTopicsAreRemovedAndReturn204() { const string testMail = "*****@*****.**"; var testTopicA = new Topic { Abbreviation = "TA", Description = "Test Topic A" }; var testTopicB = new Topic { Abbreviation = "TB", Description = "Test Topic A" }; var testSubscription = new Subscription { Mail = testMail, Topics = new List <Topic> { testTopicA, testTopicB } }; var repositoryMock = new Mock <ISubscriptionRepository>(); repositoryMock .Setup(repository => repository.GetSubscription(testMail)) .Returns(testSubscription); var sendContentMock = new Mock <ISendContent>(); var controller = new SubscriptionController(repositoryMock.Object, sendContentMock.Object); IActionResult result = controller.ChangeSubscription(testMail, Enumerable.Empty <string>().ToArray()); var objectResult = result as NoContentResult; Assert.NotNull(objectResult); repositoryMock.Verify(repository => repository.RemoveSubscription(It.IsAny <Subscription>()), Times.Once); sendContentMock.Verify(sendContent => sendContent.Send(testMail, It.IsAny <Content>()), Times.Once); }
public void ChangeSubscriptionShouldNotRemoveSubscriptionFromRepositoryAndNotSendConfirmationIfNotAllTopicsAreRemovedAndReturn201() { const string testMail = "*****@*****.**"; var testTopicA = new Topic { Abbreviation = "TA", Description = "Test Topic A" }; var testTopicB = new Topic { Abbreviation = "TB", Description = "Test Topic A" }; var testSubscription = new Subscription { Mail = testMail, Topics = new List <Topic> { testTopicA, testTopicB } }; var repositoryMock = new Mock <ISubscriptionRepository>(); repositoryMock .Setup(repository => repository.GetSubscription(testMail)) .Returns(testSubscription); repositoryMock .Setup(repository => repository.GetTopics()) .Returns(new List <Topic> { testTopicA, testTopicB }); var sendContentMock = new Mock <ISendContent>(); var controller = new SubscriptionController(repositoryMock.Object, sendContentMock.Object); IActionResult result = controller.ChangeSubscription(testMail, new string[] { testTopicA.Abbreviation }); var objectResult = result as ObjectResult; Assert.NotNull(objectResult); Assert.Equal(201, objectResult.StatusCode.Value); repositoryMock.Verify(repository => repository.RemoveSubscription(It.IsAny <Subscription>()), Times.Never); sendContentMock.Verify(sendContent => sendContent.Send(testMail, It.IsAny <Content>()), Times.Never); }