public void ProcessIdIsProperlyInitialized() { var processMonad = ProcessMonad <Boolean> .With(() => new ErrorMonad <Boolean>(String.Empty)); Assert.IsNotNull(processMonad.ProcessId); Assert.AreNotEqual(default(Guid), processMonad.ProcessId); }
public void ProcessIdIsPropagatedThroughBinds() { var processMonad = ProcessMonad <Boolean> .With(() => new ErrorMonad <Boolean>(String.Empty)); var id = processMonad.ProcessId; var secondMonad = processMonad.Bind(val => new ErrorMonad <Boolean>(String.Empty)) as ProcessMonad <Boolean>; Assert.AreEqual(id, secondMonad.ProcessId); }
public void ReturnRespectsInnerUnauthorizedMonad() { var asserterVisitor = new AssertProcessVisitor <Int32> { ExpectedMonadType = ExpectedMonad.Unauthorized, }; ProcessMonad <Int32> .With(() => new UnauthorizedMonad <Int32>()) .Accept(asserterVisitor); }
public void ReturnRespectsInnerErrorMonad() { var asserterVisitor = new AssertProcessVisitor <Int32> { ExpectedMonadType = ExpectedMonad.Error, ExpectedValue = "some err" }; ProcessMonad <Int32> .With(() => new ErrorMonad <Int32>("some err")) .Accept(asserterVisitor); }
public void ReturnRespectsInnerValueMonad() { var asserterVisitor = new AssertProcessVisitor <Int32> { ExpectedMonadType = ExpectedMonad.Value, ExpectedValue = 2020 }; ProcessMonad <Int32> .With(() => new ValueMonad <Int32>(2020)) .Accept(asserterVisitor); }