public async Task HandleShouldReturnFailWhenOutdatedVersion() { // Arrange var id = Guid.NewGuid(); var version = 1; Optional <string> login = new Optional <string>("Login"); Optional <string> password = new Optional <string>("Password$my"); Optional <string> firstName = new Optional <string>("FirstName"); Optional <string> lastName = new Optional <string>("LastName"); var fullName = new FullName(new FirstName(firstName.Value), new LastName(lastName.Value)); var userFromDatabase = new User(id, new Login("Login"), "Password$my", fullName) { Version = 2 }; var userFinderMock = new Mock <IUserFinder>(); userFinderMock.Setup(x => x.Get(id)).Returns(Task.FromResult(userFromDatabase)); var userFinder = userFinderMock.Object; var userRepositoryMock = new Mock <IUserRepository>(); userRepositoryMock.Setup(x => x.Update(It.IsAny <User>())).Returns(Task.CompletedTask); var userRepository = userRepositoryMock.Object; var versionProviderMock = new Mock <IVersionProvider>(); versionProviderMock.Setup(x => x.Generate()).Returns(version); var versionProvider = versionProviderMock.Object; var passwordProviderMock = new Mock <IPasswordProvider>(); passwordProviderMock.Setup(x => x.Hash(It.IsAny <string>())).Returns("hashedPassword"); var passwordProvider = passwordProviderMock.Object; var publishIntegrationEventsServiceMock = new Mock <IPublishIntegrationEventsService>(); publishIntegrationEventsServiceMock.Setup(x => x.PublishUserCreated(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(Task.CompletedTask); var publishIntegrationEventsService = publishIntegrationEventsServiceMock.Object; var command = new UpdateCommand(id, login, password, firstName, lastName, version); var handler = new UpdateCommandHandler(userFinder, userRepository, versionProvider, passwordProvider, publishIntegrationEventsService); // Act var result = await handler.Handle(command, CancellationToken.None); // Assert result.IsFailure.Should().BeTrue(); result.Failures.Should().OnlyContain(x => x.Code == HandlerFaultCode.NotMet.Name && x.Message == HandlerFailures.NotMet && x.Target == "version"); }
public void When_InputIsNull_MapThrowsException() { UpdateCommand updateCommand = null; _target = _fixture.Freeze <UpdateCommandHandler>(); Assert.ThrowsAsync <ArgumentNullException>(async() => await _target.Handle(updateCommand, default(CancellationToken))); }
public void Handle_GivenInvalidId_ThrowsException() { var command = new UpdateCommand { Id = 99, Name = "asdas", Disabled = false }; var sut = new UpdateCommandHandler(Context); Should.ThrowAsync <NotFoundException>(() => sut.Handle(command, CancellationToken.None)); }
public void When_ContactServiceFails_HandlerThrowsException() { var command = _fixture.Create <UpdateCommand>(); _mockContactsService = _fixture.Freeze <Mock <IContactService> >(); _mockContactsService.Setup(x => x.UpdateContactAsync(It.IsAny <Contact>())) .ThrowsAsync(new ArgumentNullException()); _target = _fixture.Create <UpdateCommandHandler>(); Assert.ThrowsAsync <ArgumentNullException>(async() => await _target.Handle(command, default(CancellationToken))); _mockContactsService.Verify(x => x.UpdateContactAsync(It.IsAny <Contact>()), Times.Once); }
public void When_InputIsValid_HandlerContactSuccessfully() { var expected = _fixture.Create <bool>(); var command = _fixture.Create <UpdateCommand>(); _mockContactsService = _fixture.Freeze <Mock <IContactService> >(); _mockContactsService.Setup(x => x.UpdateContactAsync(It.IsAny <Contact>())).ReturnsAsync(expected); _target = _fixture.Create <UpdateCommandHandler>(); var actual = _target.Handle(command, default(CancellationToken)); Assert.AreEqual(expected, actual.Result); _mockContactsService.Verify(x => x.UpdateContactAsync(It.IsAny <Contact>()), Times.Once); }
public void Handle_GivenInvalidId_ThrowsException() { var command = new UpdateCommand { Id = 123, Name = "TShirt", SellingPrice = 70, Description = "Description ..", CategoryId = 1, Disabled = true }; var sut = new UpdateCommandHandler(Context); Should.ThrowAsync <NotFoundException>(() => sut.Handle(command, CancellationToken.None)); }
public async Task Handle_GivenValidId_ShouldUpdatePersistedTodoItem() { var command = new UpdateCommand { Id = 1, Name = "Category 1", Disabled = false }; var handler = new UpdateCommandHandler(Context); await handler.Handle(command, CancellationToken.None); var entity = Context.Categories.Find(command.Id); entity.ShouldNotBeNull(); entity.Name.ShouldBe(command.Name); }
public async Task Handle_GivenValidId_ShouldUpdatePersistedTodoItem() { var command = new UpdateCommand { Id = 1, Name = "TShirt", SellingPrice = 70, Description = "Description ..", CategoryId = 1, Disabled = true }; var handler = new UpdateCommandHandler(Context); await handler.Handle(command, CancellationToken.None); var entity = Context.TodoItems.Find(command.Id); entity.ShouldNotBeNull(); entity.Title.ShouldBe(command.Name); entity.Done.ShouldBeTrue(); }