public void GivenAMessageWhenGetMessagesIsCalledThenTheMessageIsReturned() { // Arrange. var message = MessageBuilder.ABuilder().Build(); var messages = new List <Message> { message, }; var messageViewModel = MessageViewModelBuilder.ABuilder().Build(); var messageViewModels = new List <MessageViewModel> { messageViewModel, }; this.messageComponentTestDouble .Setup(component => component.GetMessages()) .Returns(messages); this.mapperTestDouble .Setup(mapper => mapper.Map <MessageViewModel>(It.IsAny <Message>())) .Returns(messageViewModel); // Act. var result = this.systemUnderTest.GetMessages(); // Assert. result.Should().BeOfType <OkObjectResult>(); var okObjectResult = (OkObjectResult)result; okObjectResult.Value.Should().BeEquivalentTo(messageViewModels); this.messageComponentTestDouble .Verify(component => component.GetMessages(), Times.Once); this.mapperTestDouble .Verify(mapper => mapper.Map <MessageViewModel>(message), Times.Once); }
public void GivenAMessageWhenEditMessageIsCalledThenTheMessageIsEdited() { // Arrange. var message = MessageBuilder.ABuilder().Build(); var messageAddEditViewModel = MessageAddEditViewModelBuilder.ABuilder().Build(); var messageViewModel = MessageViewModelBuilder.ABuilder().Build(); this.messageComponentTestDouble .Setup(component => component.GetMessage(It.IsAny <Guid>())) .Returns(message); this.mapperTestDouble .Setup(mapper => mapper.Map <MessageViewModel>(It.IsAny <Message>())) .Returns(messageViewModel); // Act. var result = this.systemUnderTest.EditMessage(message.ExternalId, messageAddEditViewModel); // Assert. result.Should().BeOfType <OkObjectResult>(); var okObjectResult = (OkObjectResult)result; okObjectResult.Value.Should().BeEquivalentTo(messageViewModel); this.messageComponentTestDouble .Verify(component => component.GetMessage(message.ExternalId), Times.Once); this.mapperTestDouble .Verify(mapper => mapper.Map(messageAddEditViewModel, message), Times.Once); this.messageComponentTestDouble .Verify(component => component.EditMessage(message), Times.Once); this.mapperTestDouble .Verify(mapper => mapper.Map <MessageViewModel>(message), Times.Once); }
public void GivenAMessageWhenAddMessageIsCalledThenTheMessageIsAdded() { // Arrange. var message = MessageBuilder.ABuilder().Build(); var messageAddEditViewModel = MessageAddEditViewModelBuilder.ABuilder().Build(); var messageViewModel = MessageViewModelBuilder.ABuilder().Build(); this.mapperTestDouble .Setup(mapper => mapper.Map <Message>(It.IsAny <MessageAddEditViewModel>())) .Returns(message); this.mapperTestDouble .Setup(mapper => mapper.Map <MessageViewModel>(It.IsAny <Message>())) .Returns(messageViewModel); // Act. var result = this.systemUnderTest.AddMessage(messageAddEditViewModel); // Assert. result.Should().BeOfType <CreatedResult>(); var createdresult = (CreatedResult)result; createdresult.Value.Should().BeEquivalentTo(messageViewModel); createdresult.Location.Should().Be($"/api/v1/Messages/{messageViewModel.Id}"); this.mapperTestDouble .Verify(mapper => mapper.Map <Message>(messageAddEditViewModel), Times.Once); this.messageComponentTestDouble .Verify(component => component.AddMessage(message), Times.Once); this.mapperTestDouble .Verify(mapper => mapper.Map <MessageViewModel>(message), Times.Once); }
public void GivenANewMessageWhenRemoveMessageIsCalledThenADbUpdateConcurrencyExceptionIsThrown() { // Arrange. var message = MessageBuilder.ABuilder().Build(); // Act. Action action = () => this.systemUnderTest.RemoveMessage(message); // Assert. action.Should().Throw <DbUpdateConcurrencyException>(); }
public void GivenAMessageWhenAddMessageIsCalledThenTheMessageIsAdded() { // Arrange. var message = MessageBuilder.ABuilder().Build(); // Act. var result = this.systemUnderTest.AddMessage(message); // Assert. result.Should().BeEquivalentTo(message); this.helloWorldContextTestDouble.Messages.Should().HaveCount(1); }
public void GivenAMessageWhenRemoveMessageIsCalledThenTheMessageIsRemoved() { // Arrange. var message = MessageBuilder.ABuilder().Build(); // Act. this.systemUnderTest.RemoveMessage(message); // Assert. this.messageRepositoryTestDouble .Verify(repository => repository.RemoveMessage(message), Times.Once); }
public void GivenAMessageWhenRemoveMessageIsCalledThenTheMessageIsRemoved() { // Arrange. var message = MessageBuilder.ABuilder().Build(); this.helloWorldContextTestDouble.Messages.Add(message); this.helloWorldContextTestDouble.SaveChanges(); // Act. this.systemUnderTest.RemoveMessage(message); // Assert. this.helloWorldContextTestDouble.Messages.Should().BeEmpty(); }
public void GivenAMessageWhenGetMessageOnGuidIsCalledThenTheMessageIsReturned() { // Arrange. var message = MessageBuilder.ABuilder().Build(); this.helloWorldContextTestDouble.Messages.Add(message); this.helloWorldContextTestDouble.SaveChanges(); // Act. var result = this.systemUnderTest.GetMessage(message.ExternalId); // Assert. result.Should().BeEquivalentTo(message); }
public void GivenAMessageWhenEditMessageIsCalledThenTheMessageIsEdited() { // Arrange. var message = MessageBuilder.ABuilder().Build(); this.helloWorldContextTestDouble.Messages.Add(message); this.helloWorldContextTestDouble.SaveChanges(); message.Content = "Edited"; // Act. var result = this.systemUnderTest.EditMessage(message); // Assert. result.Should().BeEquivalentTo(message); }
public void GivenAMessageWithIdEmptyWhenEditMessageIsCalledThenTheMessageIsAdded() { // Arrange. var message = MessageBuilder .ABuilder() .WithId(0L) .WithExternalId(Guid.Empty) .Build(); // Act. var result = this.systemUnderTest.EditMessage(message); // Assert. result.Should().BeEquivalentTo(message); this.helloWorldContextTestDouble.Messages.Should().HaveCount(1); }
public void GivenAMessageWhenAddMessageIsCalledThenTheMessageIsAdded() { // Arrange. var message = MessageBuilder.ABuilder().Build(); this.messageRepositoryTestDouble .Setup(repository => repository.AddMessage(It.IsAny <Message>())) .Returns(message); // Act. var result = this.systemUnderTest.AddMessage(message); // Assert. result.Should().Be(message); this.messageRepositoryTestDouble .Verify(repository => repository.AddMessage(message), Times.Once); }
public void GivenAMessageWhenMapMessageViewModelIsCalledThenTheMessageIsCorrectlyMapped() { // Arrange. var message = MessageBuilder.ABuilder().Build(); var messageViewModel = MessageViewModelBuilder .ABuilder() .WithId(message.ExternalId) .WithAddedOn(message.AddedOn) .WithEditedOn(message.EditedOn) .WithContent(message.Content) .Build(); // Act. var result = this.systemUnderTest.Map <MessageViewModel>(message); // Assert. result.Should().BeEquivalentTo(messageViewModel); }
public void GivenAMessageWhenRemoveMessageIsCalledThenTheMessageIsRemoved() { // Arrange. var message = MessageBuilder.ABuilder().Build(); this.messageComponentTestDouble .Setup(component => component.GetMessage(It.IsAny <Guid>())) .Returns(message); // Act. var result = this.systemUnderTest.RemoveMessage(message.ExternalId); // Assert. result.Should().BeOfType <NoContentResult>(); this.messageComponentTestDouble .Verify(component => component.GetMessage(message.ExternalId), Times.Once); this.messageComponentTestDouble .Verify(component => component.RemoveMessage(message), Times.Once); }
public void GivenAMessageWhenGetMessagesIsCalledThenTheMessageIsReturned() { // Arrange. var messages = new List <Message> { MessageBuilder.ABuilder().Build(), }; this.messageRepositoryTestDouble .Setup(repository => repository.GetMessages()) .Returns(messages); // Act. var result = this.systemUnderTest.GetMessages(); // Assert. result.Should().BeEquivalentTo(messages); this.messageRepositoryTestDouble .Verify(repository => repository.GetMessages(), Times.Once); }
public void GivenAMessageWhenMapIsCalledThenTheMessageIsCorrectlyEdited() { // Arrange. var message = MessageBuilder.ABuilder().Build(); var messageAddEditViewModel = MessageAddEditViewModelBuilder .ABuilder() .WithContent("Edited") .Build(); var editedMessage = MessageBuilder .ABuilder() .WithId(message.Id) .WithExternalId(message.ExternalId) .WithAddedOn(message.AddedOn) .WithEditedOn(message.EditedOn) .WithContent(messageAddEditViewModel.Content) .Build(); // Act. this.systemUnderTest.Map(messageAddEditViewModel, message); // Assert. message.Should().BeEquivalentTo(editedMessage); }