public async Task HasErrors_ShouldReturnCorrectValue( IValidationError[] errors, string[] properties, bool expected, [Frozen] Mock <IValidator> validator, SampleValidable sut, IFixture fixture) { //arrange var values = fixture.CreateMany <string>(properties.Length).ToArray(); for (var i = 0; i < errors.Length; i++) { int i1 = i; validator.Setup(v => v.Validate(values[i1], properties[i1], It.IsAny <CancellationToken>())).ReturnsTask(() => errors[i1]); } //act for (var i = 0; i < errors.Length; i++) { await sut.SetValueAsyncPublic(values[i], properties[i], new CancellationTokenSource()); } var actual = await sut.HasErrorsAsync(); //assert actual.Should().Be(expected); }
public async Task HasError_WithPropertyValidatedTwice_ShouldReturnFalse( [Frozen] Mock <IValidator> validator, SampleValidable sut, IValidationError error1, string value1, string value2) { //arrange validator.Setup(v => v.Validate(value1, "Property", It.IsAny <CancellationToken>())).ReturnsTask(error1); validator.Setup(v => v.Validate(value2, "Property", It.IsAny <CancellationToken>())).ReturnsTask(NoError.Value); //act await sut.SetValueAsyncPublic(value1, "Property", new CancellationTokenSource()); await sut.SetValueAsyncPublic(value2, "Property", new CancellationTokenSource()); var actual = await sut.HasError(() => sut.Property); //assert actual.Should().BeFalse(); }
public async Task GetError_WithValidatedTwicePropertyWithError_ShouldReturnCorrectValue( [Frozen] Mock <IValidator> validator, SampleValidable sut, IValidationError error1, IValidationError error2, string value1, string value2) { //arrange validator.Setup(v => v.Validate(value1, "Property", It.IsAny <CancellationToken>())) .ReturnsTask(error1); validator.Setup(v => v.Validate(value2, "Property", It.IsAny <CancellationToken>())) .ReturnsTask(error2); //act await sut.SetValueAsyncPublic(value1, "Property", new CancellationTokenSource()); await sut.SetValueAsyncPublic(value2, "Property", new CancellationTokenSource()); var actual = sut.GetError("Property"); //assert actual.Should().Be(error2); }
public async Task Sut_WhenSettingProperty_ShouldRaiseBeginValidation( [Frozen] Mock <IValidator> validator, SampleValidable sut, string value, CancellationTokenSource cancellationTokenSource) { //arrange sut.MonitorEvents(); //act await sut.SetValueAsyncPublic(value, "Property", cancellationTokenSource); //assert sut.ShouldRaise("BeginValidation"); }
public async Task HasError_ShouldReturnCorrectValue( [Frozen] Mock <IValidator> validator, SampleValidable sut, string value) { //arrange validator.Setup(v => v.Validate(value, "Property", It.IsAny <CancellationToken>())).ReturnsTask(() => NoError.Value); //act await sut.SetValueAsyncPublic(value, "Property", new CancellationTokenSource()); var actual = await sut.HasError(() => sut.Property); //assert actual.Should().Be(false); }
public async Task Sut_WhenSettingProperty_ShouldRaiseErrorChanged( [Frozen] TestSchedulers schedulers, [Frozen] Mock <IValidator> validator, SampleValidable sut, string value) { //arrange validator.Setup(v => v.Validate(value, "Property", It.IsAny <CancellationToken>())) .ReturnsTask(new ValidationError("message", null)); sut.MonitorEvents(); //act await sut.SetValueAsyncPublic(value, "Property", new CancellationTokenSource()); //assert sut.ShouldRaise("ErrorsChanged"); }