Exemplo n.º 1
0
        public void BindDoesntReturnADifferentValue()
        {
            var firstVal    = 1;
            var firstMonad  = new ValueMonad <Int32>(firstVal);
            var secondMonad = firstMonad.Bind(val => new ValueMonad <Int32>(val + 1));

            var asserterVisitor = new AssertValueVisitor <Int32>
            {
                ExpectedValue = 0,
                AreEqual      = false
            };

            secondMonad.Accept(asserterVisitor);
        }
Exemplo n.º 2
0
        public void BindReturnsTheSecondValueOFDifferentType()
        {
            var firstVal    = 1;
            var firstMonad  = new ValueMonad <Int32>(firstVal);
            var secondMonad = firstMonad.Bind(val => new ValueMonad <String>($"First val is: {val}."));

            var asserterVisitor = new AssertValueVisitor <String>
            {
                ExpectedValue = "First val is: 1.",
                AreEqual      = true
            };

            secondMonad.Accept(asserterVisitor);
        }
Exemplo n.º 3
0
        public void BindReturnsTheSecondValue()
        {
            var firstVal    = 1;
            var firstMonad  = new ValueMonad <Int32>(firstVal);
            var secondMonad = firstMonad.Bind(val => new ValueMonad <Int32>(val + 1));

            var asserterVisitor = new AssertValueVisitor <Int32>
            {
                ExpectedValue = firstVal + 1,
                AreEqual      = true
            };

            secondMonad.Accept(asserterVisitor);
        }