public async void Can_Compose_With_Single_Branching_With_Func() { int Add5If10(int val) => val + 5; Predicate <int> Is10 = x => x == 10; var composedResult = await Begin(2) .Then(Add3) .Then(Add5) .Then(WaitAndReturn) .Then(Add5) .IfThen(Is10, Add5If10) .Finally(); Assertions.ResultEquals(15, composedResult); }
public async void Can_Compose_With_Single_Branching() { var Add5If15 = Begin(1).Then(Add5); Predicate <int> Is15 = x => x == 15; var composedResult = await Begin(2) .Then(Add3) .Then(Add5) .Apply(Add5If15) .Then(WaitAndReturn) .Then(Add5) .IfThen(Is15, Add5If15) .Finally(); Assertions.ResultEquals(20, composedResult); }
public async void Can_Begin_With_Tuples_And_Compose_Passing_Tuple_And_Result() { Task <Result <(int, string)> > ValidateIsTuple(int val, string data) => Begin((val, data)).Finally(); string Concat((int, string) data) => $"{data.Item2} {data.Item1}"; string ToUpper(string str) => str.ToUpper(); var intval = 2; var name = "number"; var value = await Begin((intval, name)) .Then(ValidateIsTuple) .Then(Concat) .Then(ToUpper) .Finally(); ; Assertions.ResultEquals("NUMBER 2", value); }
public async void Can_Begin_With_Tuples_And_Compose_Deconstructed() { (int, string) ValidateIsTuple((int, string) data) => data; string Concat(int val, string name) => $"{name} {val}"; string ToUpper(string str) => str.ToUpper(); var intval = 2; var name = "number"; var value = await Begin((intval, name)) .Then(ValidateIsTuple) .Then(Concat) .Then(ToUpper) .Finally(); ; Assertions.ResultEquals("NUMBER 2", value); }
public async void Can_Compose_Async_Operations() { var composedResult = await GetFirstResult(2).Apply(Add5).Finally(); Assertions.ResultEquals(15, composedResult); }