コード例 #1
0
        public void Validation_OnNoError_IsValidIsTrue()
        {
            var example = new ThrowMyToys();
            var v       = example.ValidateName("BooBoo");

            Assert.True(v.IsValid);
        }
コード例 #2
0
        public void Validation_OnNoError_ReturnsValue()
        {
            var example = new ThrowMyToys();
            var v       = example.ValidateName("BooBoo");//returns the value if valid

            Assert.Equal("BooBoo", v);
        }
コード例 #3
0
        public void Validation_OnError_DoesNotReturnValue()
        {
            var example = new ThrowMyToys();
            var v       = example.ValidateName("FooBoo");//returns the value if valid

            Assert.NotEqual("FooBoo", v);
        }
コード例 #4
0
        public void Validation_OnError_IsValidIsFalse()
        {
            var example = new ThrowMyToys();
            var v       = example.ValidateName(null);

            Assert.False(v.IsValid);
        }
コード例 #5
0
        public void Validation_OnInvalid_IsValidIsFalse()
        {
            var example = new ThrowMyToys();
            var v       = example.ValidateName("foo");

            Assert.False(v.IsValid);
        }
コード例 #6
0
        public void Exceptional_OnNoException_SuccessIsFalse()
        {
            var example = new ThrowMyToys();
            var x       = example.ReturnAResult();

            Assert.True(x.Success);
            Assert.False(x.Exception);
        }
コード例 #7
0
        public void Exceptional_OnException_SuccessIsFalse()
        {
            var example = new ThrowMyToys();
            var x       = example.ThrowAnException();

            Assert.False(x.Success);
            Assert.True(x.Exception);
        }
コード例 #8
0
        public void GetOrElse_OnNoError_ReturnsValue()
        {
            var example = new ThrowMyToys();
            var v       = example.ValidateName("BooBoo");
            var result  = v.GetOrElse("Bob");

            Assert.Equal("BooBoo", result);
        }
コード例 #9
0
        public void Error_OnError_LeftIsTrue()
        {
            var example = new ThrowMyToys();
            var x       = example.CallName("foo");

            Assert.True(x.IsLeft);
            Assert.False(x.IsRight);
        }
コード例 #10
0
        public void Exceptional_OnException_SuccessIsFalse()
        {
            var      example = new ThrowMyToys();
            LastName name    = "BooBoo";

            //(Validate(name)).Map(Call(name));
            Validate("Something")
            .Bind(Parse);
        }
コード例 #11
0
        public void Exceptional_OnException_Exception()
        {
            var example = new ThrowMyToys();
            var x       = example.ThrowAnException();

            x.Match(
                Exception: ex => Assert.IsType <NullReferenceException>(ex),
                Success: s => Assert.True(false)//force fail if this is called
                );
        }
コード例 #12
0
        public void Error_OnError_ReturnsError()
        {
            var example = new ThrowMyToys();
            var x       = example.CallName("foo");

            x.Match(
                Right: s => Assert.True(false),
                Left: err => Assert.IsType <Error>(err)
                );
        }
コード例 #13
0
        public void Error_OnNoError_ReturnsHaha()
        {
            var example = new ThrowMyToys();
            var x       = example.CallName("BooBoo");

            x.Match(
                Right: s => Assert.Equal("Haha", s),
                Left: err => Assert.True(false)
                );
        }
コード例 #14
0
        public void Error_OnNoError_MatchesRight()
        {
            var example = new ThrowMyToys();
            var x       = example.CallName("BooBoo");

            x.Match(
                Right: s => Assert.True(true),
                Left: err => Assert.True(false)
                );
        }
コード例 #15
0
        public void Exceptional_OnNoException_Exception()
        {
            var example            = new ThrowMyToys();
            Exceptional <string> x = example.ReturnAResult();

            x.Match(
                Exception: ex => Assert.IsType <NullReferenceException>(ex),
                Success: s => Assert.Equal("Xyz", s)
                );
        }
コード例 #16
0
        public void Validation_OnError_ContainsErrors()
        {
            var example           = new ThrowMyToys();
            Validation <string> v = example.ValidateName("fooBoo");

            v.Match(
                Invalid: errors => Assert.Equal(2, errors.Count()),
                Valid: str => Assert.True(false)
                );
        }
コード例 #17
0
        public void Error_OnError_MatchesLeft()
        {
            var example = new ThrowMyToys();
            var x       = example.CallName("foo");

            x.Match(
                Right: s => Assert.True(false),
                Left: err => Assert.True(true)//expecting this one
                );
        }
コード例 #18
0
        public void GetOrElse_OnError_CallsFallback()
        {
            var           result   = false;
            Func <string> fallback = () => {
                result = true;
                return("Bob");
            };
            var example = new ThrowMyToys();
            var v       = example.ValidateName("FooBoo");

            var x = v.GetOrElse(fallback);

            Assert.True(result);
        }