public async Task CreateAsync_FieldValidationSucceed_CreatesFact() { //arrange var fact = new FactUpdateModel(); var expected = new Fact(); var fieldGetService = new Mock <IFieldGetService>(); fieldGetService.Setup(x => x.ValidateAsync(fact)); var factDataAccess = new Mock <IFactDataAccess>(); factDataAccess.Setup(x => x.InsertAsync(fact)).ReturnsAsync(expected); var factGetService = new FactCreateService(factDataAccess.Object, fieldGetService.Object); //act var result = await factGetService.CreateAsync(fact); //assert result.Should().Be(expected); }
public async Task CreateAsync_FieldValidationFailed_ThrowsError() { //arrange var fixture = new Fixture(); var fact = new FactUpdateModel(); var expected = fixture.Create <string>(); var fieldGetService = new Mock <IFieldGetService>(); fieldGetService.Setup(x => x.ValidateAsync(fact)).Throws(new InvalidOperationException(expected)); var factDataAccess = new Mock <IFactDataAccess>(); var factGetService = new FactCreateService(factDataAccess.Object, fieldGetService.Object); //act var action = new Func <Task>(() => factGetService.CreateAsync(fact)); //assert await action.Should().ThrowAsync <InvalidOperationException>().WithMessage(expected); factDataAccess.Verify(x => x.InsertAsync(fact), Times.Never); }