Пример #1
0
        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));
        }
Пример #3
0
        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));
        }