public async Task HandleAsync_WhenCommandIsCorrent_ShouldReturnSuccessResult() { // Arrange var handler = new CreateWebsiteHandler(_repositoryMock.Object, _unitOfWorkMock.Object, _cypherMock.Object); // Act var request = new Application.Websites.Commands.CreateWebsite.CreateWebsite("mySite", "www.mysite.com", new List <string> { "cat1", "cat2" }, new ImageManipulation("myImage.png", "image/png", new byte[1]), "*****@*****.**", "123456"); OperationResult <WebsiteOutputModel> createWebsiteOperation = await handler.Handle(request, CancellationToken.None); // Assert _unitOfWorkMock.Verify(x => x.CommitAsync(CancellationToken.None), Times.Once); _repositoryMock.Verify(x => x.Add(It.IsAny <Website>()), Times.Once); createWebsiteOperation.Should().BeOfType(typeof(OperationResult <WebsiteOutputModel>)); createWebsiteOperation.IsSuccessful.Should().BeTrue(); createWebsiteOperation.Errors.Should().BeNull(); createWebsiteOperation.Result.Name.Should().Be("mySite"); createWebsiteOperation.Result.Url.Should().Be("www.mysite.com"); createWebsiteOperation.Result.Categories.Count.Should().Be(2); createWebsiteOperation.Result.Categories[0].Should().Be("cat1"); createWebsiteOperation.Result.Categories[1].Should().Be("cat2"); createWebsiteOperation.Result.Image.Name.Should().Be("myImage.png"); createWebsiteOperation.Result.Image.DownloadLink.Should().BeNull(); createWebsiteOperation.Result.Login.Email.Should().Be("*****@*****.**"); createWebsiteOperation.Result.Login.Password.Should().Be("123456"); }
public async Task HandleAsync_WhenCommitAsyncThrowsUrlExistsException_ShouldReturnFailureResult() { // Arrange _unitOfWorkMock.Setup(x => x.CommitAsync(CancellationToken.None)).Throws <UrlExistsException>(); var handler = new CreateWebsiteHandler(_repositoryMock.Object, _unitOfWorkMock.Object, _cypherMock.Object); // Act var request = new Application.Websites.Commands.CreateWebsite.CreateWebsite("mySite", "www.mysite.com", new List <string> { "cat1,cat2" }, new ImageManipulation("myImage.png", "image/png", new byte[1]), "*****@*****.**", "123456"); OperationResult <WebsiteOutputModel> createWebsiteOperation = await handler.Handle(request, CancellationToken.None); // Assert _unitOfWorkMock.Verify(x => x.CommitAsync(CancellationToken.None), Times.Once); createWebsiteOperation.Should().BeOfType(typeof(OperationResult <WebsiteOutputModel>)); createWebsiteOperation.IsSuccessful.Should().BeFalse(); createWebsiteOperation.Errors.Count.Should().Be(1); createWebsiteOperation.Errors.First().Key.Should().Be("Url"); createWebsiteOperation.Errors.First().Value.Should().Be("Url already exists."); }