public void BindWithUnauthorizedMonadIsProperlyLogged() { var logger = new TestLogger(); _ = new LoggerMonad <Int32>(new ValueMonad <Int32>(2020), logger) .Bind(val => new UnauthorizedMonad <Int32>()); Assert.IsNotNull(logger.LoggedValues); Assert.IsTrue(logger.LoggedValues[1].Contains("bind", StringComparison.InvariantCultureIgnoreCase)); Assert.IsTrue(logger.LoggedValues[1].Contains("unauthorized", StringComparison.InvariantCultureIgnoreCase)); }
public void ConstructorWithUnauthorizedMonadIsProperlyLogged() { var logger = new TestLogger(); _ = new LoggerMonad <Int32>(new UnauthorizedMonad <Int32>(), logger); Assert.IsNotNull(logger.LoggedValues); Assert.AreEqual(1, logger.LoggedValues.Count); Assert.IsTrue(logger.LoggedValues.Single().Contains("construct", StringComparison.InvariantCultureIgnoreCase)); Assert.IsTrue(logger.LoggedValues.Single().Contains("unauthorized", StringComparison.InvariantCultureIgnoreCase)); }
public void AcceptWithErrorMonadIsProperlyLogged() { var logger = new TestLogger(); _ = new LoggerMonad <Int32>(new ValueMonad <Int32>(2020), logger) .Bind(val => new ErrorMonad <Int32>($"#{val}")) .Accept(new NullVisitor <Int32>()); Assert.IsNotNull(logger.LoggedValues); Assert.IsTrue(logger.LoggedValues[3].Contains("accept", StringComparison.InvariantCultureIgnoreCase)); Assert.IsTrue(logger.LoggedValues[3].Contains("#2020", StringComparison.InvariantCultureIgnoreCase)); Assert.IsTrue(logger.LoggedValues[3].Contains("error", StringComparison.InvariantCultureIgnoreCase)); }