public void WithValueIf_True_OnPassed_NowHasValue_WithValueFactory() { var mock = IValueFactoryMock <string> .GetMock("value", "orValue"); var result = Result.WithValue("oldValue") .WithValueIf(true, () => mock.Object.Value()); result.ShouldBeOfType <Passed <string> >(); result.Value.ShouldBe("value"); mock.Verify(m => m.Value(), Times.Once); }
public void WithValueIf_False_OnPassed_RetainsOldValue_WithValueFactory() { var mock = IValueFactoryMock <string> .GetMock("value", "orValue"); var result = Result.WithValue("oldValue") .WithValueIf(false, () => mock.Object.Value()); result.ShouldBeOfType <Passed <string> >(); result.Value.ShouldBe("oldValue"); mock.Verify(m => m.Value(), Times.Never); }
public void WithValueIf_True_OnFailed_ValueIsDropped_WithValueFactory() { var mock = IValueFactoryMock <string> .GetMock("value", "orValue"); var result = Result.WithValue("oldValue") .Fail() .WithValueIf(true, () => mock.Object.Value()); result.ShouldBeOfType <Failed <string> >(); ShouldThrowExtensions.ShouldThrow <ResultException>(() => result.Value); mock.Verify(m => m.Value(), Times.Never); }