Exemple #1
0
        public void ElementAt_Skip_Take_Predicate_Selector_With_ValidData_Must_Return_Some(int[] source, int skipCount, int takeCount, Predicate <int> predicate, Selector <int, string> selector)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.ToList(
                    System.Linq.Enumerable.Select(
                        System.Linq.Enumerable.Where(
                            System.Linq.Enumerable.Take(
                                System.Linq.Enumerable.Skip(source, skipCount), takeCount), predicate.AsFunc()), selector.AsFunc()));

            for (var index = 0; index < expected.Count; index++)
            {
                // Act
                var result = ReadOnlyList
                             .Skip <Wrap.ValueReadOnlyList <int>, int>(wrapped, skipCount)
                             .Take(takeCount)
                             .Where(predicate)
                             .Select(selector)
                             .ElementAt(index);

                // Assert
                _ = result.Match(
                    value => value.Must().BeEqualTo(expected[index]),
                    () => throw new Exception());
            }
        }
Exemple #2
0
        public void ToList_Skip_Take_Predicate_Selector_With_ValidData_Must_Succeed(int[] source, int skipCount, int takeCount, Predicate <int> predicate, Selector <int, string> selector)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.ToList(
                    System.Linq.Enumerable.Select(
                        System.Linq.Enumerable.Where(
                            System.Linq.Enumerable.Take(
                                System.Linq.Enumerable.Skip(source, skipCount), takeCount), predicate.AsFunc()), selector.AsFunc()));

            // Act
            var result = ReadOnlyList
                         .Skip <Wrap.ValueReadOnlyList <int>, int>(wrapped, skipCount)
                         .Take(takeCount)
                         .Where(predicate)
                         .Select(selector)
                         .ToList();

            // Assert
            _ = result.Must()
                .BeOfType <List <string> >()
                .BeEnumerableOf <string>()
                .BeEqualTo(expected);
        }
Exemple #3
0
        public void ElementAt_Skip_Take_Predicate_Selector_With_OutOfRange_Must_Return_None(int[] source, int skipCount, int takeCount, Predicate <int> predicate, Selector <int, string> selector)
        {
            // Arrange
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var optionNegative = ReadOnlyList
                                 .Skip <Wrap.ValueReadOnlyList <int>, int>(wrapped, skipCount)
                                 .Take(takeCount)
                                 .Where(predicate)
                                 .Select(selector)
                                 .ElementAt(-1);
            var optionTooLarge = ReadOnlyList
                                 .Skip <Wrap.ValueReadOnlyList <int>, int>(wrapped, skipCount)
                                 .Take(takeCount)
                                 .Where(predicate)
                                 .Select(selector)
                                 .ElementAt(wrapped.Count);

            // Assert
            _ = optionNegative.Must()
                .BeOfType <Option <string> >()
                .EvaluateTrue(option => option.IsNone);
            _ = optionTooLarge.Must()
                .BeOfType <Option <string> >()
                .EvaluateTrue(option => option.IsNone);
        }
Exemple #4
0
        public void ElementAtOrDefault_With_OutOfRange_Must_ReturnDefault(int[] source, int index)
        {
            // Arrange
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyList.ElementAtOrDefault <Wrap.ValueReadOnlyList <int>, int>(wrapped, index);

            // Assert
            _ = result.Must()
                .BeEqualTo(default);
        public void WhereIndex_With_NullPredicate_Must_Throw()
        {
            // Arrange
            var list      = Wrap.AsValueReadOnlyList(new int[0]);
            var predicate = (Predicate <int>)null;

            // Act
            Action action = () => _ = ReadOnlyList.Where(list, predicate);

            // Assert
            _ = action.Must()
                .Throw <ArgumentNullException>()
                .EvaluateTrue(exception => exception.ParamName == "predicate");
        }
Exemple #6
0
        public void Contains_ValueType_With_Null_And_Contains_Must_ReturnTrue(int[] source)
        {
            // Arrange
            var value   = System.Linq.Enumerable.Last(source);
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyListExtensions
                         .Contains <Wrap.ValueReadOnlyListWrapper <int>, int>(wrapped, value);

            // Assert
            _ = result.Must()
                .BeTrue();
        }
Exemple #7
0
        public void ElementAt_With_OutOfRange_Must_Throw(int[] source, int index)
        {
            // Arrange
            var wrapped = Wrap
                          .AsValueReadOnlyList(source);

            // Act
            Action action = () => _ = ReadOnlyList
                                      .ElementAt <Wrap.ValueReadOnlyList <int>, int>(wrapped, index);

            // Assert
            _ = action.Must()
                .Throw <ArgumentOutOfRangeException>();
        }
Exemple #8
0
        public void Skip_With_ValidData_Must_Succeed(int[] source, int count)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected = System.Linq.Enumerable.Skip(source, count);

            // Act
            var result = ReadOnlyList.Skip <Wrap.ValueReadOnlyList <int>, int>(wrapped, count);

            // Assert
            _ = result.Must()
                .BeEnumerableOf <int>()
                .BeEqualTo(expected);
        }
        public void Contains_ReferenceType_With_Null_And_NotContains_Must_ReturnFalse(int[] source)
        {
            // Arrange
            var value   = default(string);
            var wrapped = Wrap.AsValueReadOnlyList(source.Select(item => item.ToString()).ToArray());

            // Act
            var result = ReadOnlyListExtensions
                         .Contains <Wrap.ValueReadOnlyListWrapper <string>, string>(wrapped, value);

            // Assert
            _ = result.Must()
                .BeFalse();
        }
        public void Contains_With_Comparer_And_Contains_Must_ReturnTrue(int[] source)
        {
            // Arrange
            var value   = System.Linq.Enumerable.Last(source);
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyList
                         .Contains <Wrap.ValueReadOnlyList <int>, int>(wrapped, value, EqualityComparer <int> .Default);

            // Assert
            _ = result.Must()
                .BeTrue();
        }
        public void Contains_With_Null_And_NotContains_Must_ReturnFalse(int[] source)
        {
            // Arrange
            var value   = int.MaxValue;
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyList
                         .Contains <Wrap.ValueReadOnlyList <int>, int>(wrapped, value, null);

            // Assert
            _ = result.Must()
                .BeFalse();
        }
        public void WhereIndex_With_ValidData_Must_Succeed(int[] source, Predicate <int> predicate)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected = System.Linq.Enumerable.Where(wrapped, predicate.AsFunc());

            // Act
            var result = ReadOnlyList.Where(wrapped, predicate);

            // Assert
            _ = result.Must()
                .BeEnumerableOf <int>()
                .BeEqualTo(expected);
        }
Exemple #13
0
        public void Contains_ReferenceType_With_Null_And_Contains_Must_ReturnTrue(int[] source)
        {
            // Arrange
            var value   = System.Linq.Enumerable.Last(source).ToString();
            var wrapped = Wrap.AsValueReadOnlyList(source.AsValueEnumerable().Select(item => item.ToString()).ToArray());

            // Act
            var result = ReadOnlyListExtensions
                         .Contains <Wrap.ValueReadOnlyListWrapper <string>, string>(wrapped, value);

            // Assert
            _ = result.Must()
                .BeTrue();
        }
Exemple #14
0
        public void Contains_With_Comparer_And_NotContains_Must_ReturnFalse(int[] source)
        {
            // Arrange
            var value   = int.MaxValue;
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyListExtensions
                         .Contains <Wrap.ValueReadOnlyListWrapper <int>, int>(wrapped, value, EqualityComparer <int> .Default);

            // Assert
            _ = result.Must()
                .BeFalse();
        }
Exemple #15
0
        public void Select_With_NullSelector_Must_Throw()
        {
            // Arrange
            var list     = Wrap.AsValueReadOnlyList(new int[0]);
            var selector = (Selector <int, string>)null;

            // Act
            Action action = () => _ = ReadOnlyList.Select <Wrap.ValueReadOnlyList <int>, int, string>(list, selector);

            // Assert
            _ = action.Must()
                .Throw <ArgumentNullException>()
                .EvaluateTrue(exception => exception.ParamName == "selector");
        }
        public void First_With_Empty_Must_Throw(int[] source)
        {
            // Arrange
            var wrapped = Wrap
                          .AsValueReadOnlyList(source);

            // Act
            Action action = () => _ = ReadOnlyList
                                      .First <Wrap.ValueReadOnlyList <int>, int>(wrapped);

            // Assert
            _ = action.Must()
                .Throw <InvalidOperationException>()
                .EvaluateTrue(exception => exception.Message == "Sequence contains no elements");
        }
        public void All_With_NullPredicate_Must_Throw()
        {
            // Arrange
            var wrapped   = Wrap.AsValueReadOnlyList(new int[0]);
            var predicate = (Predicate <int>)null;

            // Act
            Action action = () => _ = ReadOnlyListExtensions
                                      .All <Wrap.ValueReadOnlyListWrapper <int>, int>(wrapped, predicate);

            // Assert
            _ = action.Must()
                .Throw <ArgumentNullException>()
                .EvaluateTrue(exception => exception.ParamName == "predicate");
        }
        public void SkipTake_Indexer_With_OutOfRange__Must_Throw(int takeCount, int index)
        {
            // Arrange
            var source  = new int[] { 1, 2, 3, 4, 5 };
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            Func <int> action = () => ReadOnlyList
                                .SkipTake <Wrap.ValueReadOnlyList <int>, int>(wrapped, 0, takeCount)[index];

            // Assert
            _ = action.Must()
                .Throw <ArgumentOutOfRangeException>()
                .EvaluateTrue(exception => exception.ParamName == "index");
        }
        public void Single_With_Multiple_Must_Return_None(int[] source)
        {
            // Arrange
            var wrapped = Wrap
                          .AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyList
                         .Single <Wrap.ValueReadOnlyList <int>, int>(wrapped);

            // Assert
            _ = result.Must()
                .BeOfType <Option <int> >()
                .EvaluateTrue(option => option.IsNone);
        }
Exemple #20
0
        public void Any_Predicate_With_ValidData_Must_Succeed(int[] source, Predicate <int> predicate)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.Any(wrapped, predicate.AsFunc());

            // Act
            var result = ReadOnlyListExtensions
                         .Any <Wrap.ValueReadOnlyListWrapper <int>, int>(wrapped, predicate);

            // Assert
            _ = result.Must()
                .BeEqualTo(expected);
        }
Exemple #21
0
        public void AsValueReadOnlyList1_With_ValidData_Must_Succeed(int[] source)
        {
            // Arrange
            var wrapped = Wrap
                          .AsValueReadOnlyList(source);

            // Act
            var result = wrapped
                         .AsValueEnumerable();

            // Assert
            _ = result.Must()
                .BeEnumerableOf <int>()
                .BeEqualTo(source);
        }
Exemple #22
0
        public void Single_With_Multiple_Must_Throw(int[] source)
        {
            // Arrange
            var wrapped = Wrap
                          .AsValueReadOnlyList(source);

            // Act
            Action action = () => _ = ReadOnlyList
                                      .Single <Wrap.ValueReadOnlyList <int>, int>(wrapped);

            // Assert
            _ = action.Must()
                .Throw <InvalidOperationException>()
                .EvaluateTrue(exception => exception.Message == "Sequence contains more than one element");
        }
Exemple #23
0
        public void ElementAt_With_ValidData_Must_Succeed(int[] source, int index)
        {
            // Arrange
            var wrapped = Wrap
                          .AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.ElementAt(wrapped, index);

            // Act
            var result = ReadOnlyList
                         .ElementAt <Wrap.ValueReadOnlyList <int>, int>(wrapped, index);

            // Assert
            _ = result.Must()
                .BeEqualTo(expected);
        }
        public void Contains_Skip_Take_With_Null_And_NotContains_Must_ReturnFalse(int[] source, int skipCount, int takeCount)
        {
            // Arrange
            var value   = int.MaxValue;
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyList
                         .Skip <Wrap.ValueReadOnlyList <int>, int>(wrapped, skipCount)
                         .Take(takeCount)
                         .Contains(value, null);

            // Assert
            _ = result.Must()
                .BeFalse();
        }
Exemple #25
0
        public void Select_With_ValidData_Must_Succeed(int[] source, Func <int, int, string> selector)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected = source
                           .Select(selector);

            // Act
            var result = wrapped.AsValueEnumerable()
                         .Select(selector);

            // Assert
            _ = result.Must()
                .BeEnumerableOf <string>()
                .BeEqualTo(expected);
        }
Exemple #26
0
        public void Single_With_Single_Must_Succeed(int[] source)
        {
            // Arrange
            var wrapped = Wrap
                          .AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.Single(source);

            // Act
            var result = ReadOnlyList
                         .Single <Wrap.ValueReadOnlyList <int>, int>(wrapped);

            // Assert
            _ = result.Must()
                .BeEqualTo(expected);
        }
        public void ToArray_With_ValidData_Must_Succeed(int[] source)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.ToArray(source);

            // Act
            var result = ReadOnlyList
                         .ToArray <Wrap.ValueReadOnlyList <int>, int>(wrapped);

            // Assert
            _ = result.Must()
                .BeArrayOf <int>()
                .BeEqualTo(expected);
        }
Exemple #28
0
        public void Select_With_ValidData_Must_Succeed(int[] source)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.Select(wrapped, item => item.ToString());

            // Act
            var result = ReadOnlyList
                         .Select <Wrap.ValueReadOnlyList <int>, int, string>(wrapped, item => item.ToString());

            // Assert
            _ = result.Must()
                .BeEnumerableOf <string>()
                .BeEqualTo(expected);
        }
        public void All_PredicateAt_With_ValidData_Must_Succeed(int[] source, PredicateAt <int> predicate)
        {
            // Arrange
            var wrapped  = Wrap.AsValueReadOnlyList(source);
            var expected =
                System.Linq.Enumerable.Count(
                    System.Linq.Enumerable.Where(source, predicate.AsFunc())) == source.Length;

            // Act
            var result = ReadOnlyListExtensions
                         .All <Wrap.ValueReadOnlyListWrapper <int>, int>(wrapped, predicate);

            // Assert
            _ = result.Must()
                .BeEqualTo(expected);
        }
Exemple #30
0
        public void Contains_Skip_Take_With_Comparer_And_NotContains_Must_ReturnFalse(int[] source, int skip, int take)
        {
            // Arrange
            var value   = int.MaxValue;
            var wrapped = Wrap.AsValueReadOnlyList(source);

            // Act
            var result = ReadOnlyListExtensions
                         .Skip <Wrap.ValueReadOnlyListWrapper <int>, int>(wrapped, skip)
                         .Take(take)
                         .Contains(value, TestComparer <int> .Instance);

            // Assert
            _ = result.Must()
                .BeFalse();
        }