예제 #1
0
        public void EitherRightSerialization()
        {
            EitherRight <int> either             = new EitherRight <int>(25);
            EitherRight <int> deserializedEither = SerializeAndDeserialize(either);

            CheckEitherRight(deserializedEither, 25);
        }
예제 #2
0
        public void RightShouldSucceed()
        {
            // Arrange
            var value = "value";

            // Act
            EitherRight <string> right = Right <string>(value);

            // Assert
            right.ToString().Should().Be("Right(value)");
        }
예제 #3
0
        public void EqualsObjectShouldReturnFalseWhenFirstValueNull()
        {
            // Arrange
            var first  = new EitherRight <string>(null);
            var second = new EitherRight <string>("value");

            // Act
            var result = Equals(first, second);

            // Assert
            result.Should().BeFalse();
        }
예제 #4
0
        public void EqualsObjectShouldReturnFalseWhenDifferentTypes()
        {
            // Arrange
            var first  = new EitherRight <string>("1");
            var second = new EitherRight <int>(1);

            // Act
            var result = Equals(first, second);

            // Assert
            result.Should().BeFalse();
        }
예제 #5
0
        public void EqualsObjectShouldReturnFalseWhenSameTypeAndDifferentValues()
        {
            // Arrange
            var first  = new EitherRight <string>("value1");
            var second = new EitherRight <string>("value2");

            // Act
            var result = Equals(first, second);

            // Assert
            result.Should().BeFalse();
        }
예제 #6
0
        public void EqualsObjectShouldReturnTrueWhenBothValueSameNotNull()
        {
            // Arrange
            var first  = new EitherRight <string>("value");
            var second = new EitherRight <string>("value");

            // Act
            var result = Equals(first, second);

            // Assert
            result.Should().BeTrue();
        }
예제 #7
0
        public void CtorShouldSetCorrectValue()
        {
            // Arrange
            var value       = "right";
            var eitherRight = new EitherRight <string>(value);

            // Act
            var result = eitherRight.Value;

            // Assert
            result.Should().Be(value);
        }
예제 #8
0
        public void EqualsEitherLeftShouldReturnFalseWhenSecondValueNull()
        {
            // Arrange
            var first  = new EitherRight <string>("value");
            var second = new EitherRight <string>(null);

            // Act
            var result = first.Equals(second);

            // Assert
            result.Should().BeFalse();
        }
예제 #9
0
        public void EqualsEitherRightShouldReturnFalse()
        {
            // Arrange
            var first  = new EitherRight <string>("value1");
            var second = new EitherRight <string>("value2");

            // Act
            var result = first.Equals(second);

            // Assert
            result.Should().BeFalse();
        }
예제 #10
0
        public void ImplicitOperatorOverloadingShouldSucceedWithEitherRight()
        {
            // Arrange
            var value       = 1;
            var eitherRight = new EitherRight <int>(value);

            // Act
            Either <string, int> either = eitherRight;
            var result = either.ToString();

            // Assert
            result.Should().Be("Right(1)");
        }
예제 #11
0
        public void ToStringShouldProvideExpectedRepresentation()
        {
            // Arrange
            var value          = "right";
            var expectedResult = $"Right({value})";
            var eitherRight    = new EitherRight <string>(value);

            // Act
            var result = eitherRight.ToString();

            // Assert
            result.Should().Be(expectedResult);
        }
예제 #12
0
 public static void CheckEitherRight <TRight>(EitherRight <TRight> either, [NotNull] TRight expectedValue)
 {
     Assert.IsFalse(either.IsLeft);
     Assert.IsTrue(either.IsRight);
     Assert.AreEqual(expectedValue, either.Value);
 }