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))); }
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); }
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()); }