private void ShouldInvokeOnFailureFunc() { Result <int> OnFailure(Error e) { return(new Failure <int>(new Error(e.Title, $"Ka-{e.Detail}"))); } var failure = new Failure <int>(new Error("Error", "Boom!")); Result <int> result = failure.Catch(e => OnFailure(e)); result.Should().BeEquivalentTo(new Failure <int>(new Error("Error", "Ka-Boom!"))); }
private async Task ShouldInvokeOnFailureFuncAsynchronously() { async Task <Result <int> > OnFailure(Error e) { await Task.Yield(); return(new Failure <int>(new Error(e.Title, $"Ka-{e.Detail}"))); } var failure = new Failure <int>(new Error("Error", "Boom!")); Result <int> result = await failure.Catch(async e => await OnFailure(e)); result.Should().BeEquivalentTo(new Failure <int>(new Error("Error", "Ka-Boom!"))); }
public void FailureMapTest_ShouldFireCatch() { // Arrange const string message = "I am a value"; const string value2 = "I am another value"; var failure = new Failure <string>(message); // Act var result = failure.Catch(m => { // Assert Assert.Same(message, m.Message); return(value2); }); // Assert Assert.NotSame(message, result); Assert.Same(value2, result); }