Ejemplo n.º 1
0
 public static Result <UserCardDigits> Create(Maybe <string> cardDigits)
 {
     return(cardDigits.ToResult("Card number cannot be an empty string.")
            .OnSuccess(cardDigits => cardDigits.Trim())
            .Ensure(cardDigits => cardDigits.All(char.IsDigit), "Card number must only contain numbers.")
            .Ensure(cardDigits => cardDigits.Length == 3, "Card number must contain 3 digits.")
            .Map(cardDigits => new UserCardDigits(cardDigits)));
 }
Ejemplo n.º 2
0
        public void MaybeAll_Mixed_Nothing()
        {
            // arrange
            var listOfMaybes = new[] {
                Maybe.Of(1),
                Maybe <int> .Nothing,
                Maybe.Of(3),
            };

            // act
            var maybeList = Maybe.All(listOfMaybes);

            // assert
            Assert.True(maybeList.IsNothing);
            Assert.False(maybeList.IsJust);
        }
Ejemplo n.º 3
0
        public void MaybeAll_Ok()
        {
            // arrange
            var listOfMaybes = new [] {
                Maybe.Of(1),
                Maybe.Of(2),
                Maybe.Of(3),
            };

            // act
            var maybeList = Maybe.All(listOfMaybes);

            // assert
            Assert.True(maybeList.IsJust);
            Assert.False(maybeList.IsNothing);
            //Assert.IsAssignableFrom(typeof(IEnumerable<int>), maybeList.UnsafelyUnwrap());
            Assert.Equal(new[] { 1, 2, 3 }, maybeList.UnsafelyUnwrap());
        }