Example #1
0
        public static void Create___Should_returns_a_numeric_of_the_same_type_as_request___When_request_is_a_numeric_type()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomNumericSequenceGenerator(int.MinValue, int.MaxValue);

            // Act
            var actualByteResult    = systemUnderTest.Create(typeof(byte), dummyContainer);
            var actualDecimalResult = systemUnderTest.Create(typeof(decimal), dummyContainer);
            var actualDoubleResult  = systemUnderTest.Create(typeof(double), dummyContainer);
            var actualShortResult   = systemUnderTest.Create(typeof(short), dummyContainer);
            var actualIntResult     = systemUnderTest.Create(typeof(int), dummyContainer);
            var actualLongResult    = systemUnderTest.Create(typeof(long), dummyContainer);
            var actualSbyteResult   = systemUnderTest.Create(typeof(sbyte), dummyContainer);
            var actualFloatResult   = systemUnderTest.Create(typeof(float), dummyContainer);
            var actualUshortesult   = systemUnderTest.Create(typeof(ushort), dummyContainer);
            var actualUintResult    = systemUnderTest.Create(typeof(uint), dummyContainer);
            var actualUlongResult   = systemUnderTest.Create(typeof(ulong), dummyContainer);

            // Assert
            actualByteResult.Should().BeOfType <byte>();
            actualDecimalResult.Should().BeOfType <decimal>();
            actualDoubleResult.Should().BeOfType <double>();
            actualShortResult.Should().BeOfType <short>();
            actualIntResult.Should().BeOfType <int>();
            actualLongResult.Should().BeOfType <long>();
            actualSbyteResult.Should().BeOfType <sbyte>();
            actualFloatResult.Should().BeOfType <float>();
            actualUshortesult.Should().BeOfType <ushort>();
            actualUintResult.Should().BeOfType <uint>();
            actualUlongResult.Should().BeOfType <ulong>();
        }
Example #2
0
        public static void Create___Should_returns_an_enum_of_the_same_type_as_request___When_request_is_for_an_enum()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomEnumSequenceGenerator();
            var request         = typeof(Number);

            // Act
            var actualResult = systemUnderTest.Create(request, dummyContainer);

            // Assert
            actualResult.Should().BeOfType <Number>();
        }
Example #3
0
        public static void Create___Should_returns_an_object_equal_to_NoSpecimen___When_called_with_null_request()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomEnumSequenceGenerator();
            var expectedResult  = new NoSpecimen();

            // Act
            var actualResult = systemUnderTest.Create(null, dummyContainer);

            // Assert
            actualResult.Should().Be(expectedResult);
        }
Example #4
0
        public static void Create___Should_return_an_object_of_type_bool___When_request_is_for_a_boolean()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomBoolSequenceGenerator();
            var request         = typeof(bool);

            // Act
            var actualResult = systemUnderTest.Create(request, dummyContainer);

            // Assert
            actualResult.Should().BeOfType <bool>();
        }
Example #5
0
        public static void Create___Should_return_an_object_equal_to_NoSpecimen___When_request_is_not_a_boolean()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomBoolSequenceGenerator();
            var expectedResult  = new NoSpecimen();
            var request         = new object();

            // Act
            var actualResult = systemUnderTest.Create(request, dummyContainer);

            // Assert
            actualResult.Should().Be(expectedResult);
        }
Example #6
0
        public static void Create___Should_return_both_true_and_false_at_least_once___When_many_requests_are_made_for_booleans()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomBoolSequenceGenerator();
            var request         = typeof(bool);

            // Act
            var actualResult = Enumerable.Range(1, 1000).Select(_ => systemUnderTest.Create(request, dummyContainer)).Cast <bool>().ToList();

            // Assert
            actualResult.Should().Contain(true);
            actualResult.Should().Contain(false);
        }
Example #7
0
        public static void Create___Should_return_random_enum_values___When_multiple_requests_are_made_for_enum()
        {
            // Arrange
            var dummyContainer    = new DummySpecimenContext();
            var systemUnderTest   = new RandomEnumSequenceGenerator();
            var request           = typeof(Number);
            var enumValuesCount   = Enum.GetValues(typeof(Number)).Length;
            var enumValuesInOrder = Enum.GetValues(typeof(Number)).Cast <Number>();

            // Act
            var actualResult = Enumerable.Range(1, enumValuesCount).Select(_ => systemUnderTest.Create(request, dummyContainer)).Cast <Number>().ToList();

            // Assert
            actualResult.Should().NotEqual(enumValuesInOrder);
        }
Example #8
0
        public static void Create___Should_return_all_enum_values_at_least_once___When_many_requests_are_made_for_an_enum()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomEnumSequenceGenerator();
            var request         = typeof(Number);
            var allEnumValues   = Enum.GetValues(request).Cast <Number>();

            // Act
            var actualResult = Enumerable.Range(1, 1000).Select(_ => systemUnderTest.Create(request, dummyContainer)).Cast <Number>().ToList();

            // Assert
            foreach (var number in allEnumValues)
            {
                actualResult.Should().Contain(number);
            }
        }
Example #9
0
        public static void Create___Should_return_unique_numeric_values___When_the_number_of_calls_to_Create_equals_the_size_of_the_range_of_the_generator()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomNumericSequenceGenerator(sbyte.MinValue, sbyte.MaxValue);

            // Act
            var actualResult = new List <short>();

            for (int i = sbyte.MinValue; i < sbyte.MaxValue; i++)
            {
                actualResult.Add((sbyte)systemUnderTest.Create(typeof(sbyte), dummyContainer));
            }

            // Assert
            actualResult.Should().OnlyHaveUniqueItems();
        }
Example #10
0
        public static void Create___Should_always_return_values_within_specified_generator_range___When_Create_is_called_many_times()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomNumericSequenceGenerator(sbyte.MinValue, sbyte.MaxValue);

            // Act
            var actualResult = new List <short>();

            for (int i = 0; i < 10000; i++)
            {
                actualResult.Add((sbyte)systemUnderTest.Create(typeof(sbyte), dummyContainer));
            }

            // Assert
            actualResult.ForEach(_ => _.Should().BeGreaterOrEqualTo(sbyte.MinValue));
            actualResult.ForEach(_ => _.Should().BeLessThan(sbyte.MaxValue));
        }
Example #11
0
        public static void Create___Should_reset_uniqueness_check___When_the_number_of_calls_to_Create_exceeds_the_size_of_the_range_of_the_generator()
        {
            // Arrange
            var dummyContainer  = new DummySpecimenContext();
            var systemUnderTest = new RandomNumericSequenceGenerator(sbyte.MinValue, sbyte.MaxValue);
            var pastResult      = new List <short>();

            for (int i = sbyte.MinValue; i < sbyte.MaxValue; i++)
            {
                pastResult.Add((sbyte)systemUnderTest.Create(typeof(sbyte), dummyContainer));
            }

            // Act
            var actualResult = (sbyte)systemUnderTest.Create(typeof(sbyte), dummyContainer);

            // Assert
            pastResult.Should().Contain(actualResult);
        }
Example #12
0
        public static void Create___Should_return_random_booleans___When_multiple_requests_are_made_for_booleans()
        {
            // Arrange
            var dummyContainer   = new DummySpecimenContext();
            var systemUnderTest  = new RandomBoolSequenceGenerator();
            var request          = typeof(bool);
            var sequentialBools1 = new List <bool> {
                true, false, true, false, true, false, true, false
            };
            var sequentialBools2 = new List <bool> {
                false, true, false, true, false, true, false, true
            };

            // Act
            var actualResult = Enumerable.Range(1, sequentialBools1.Count).Select(_ => systemUnderTest.Create(request, dummyContainer)).Cast <bool>().ToList();

            // Assert
            actualResult.Should().NotEqual(sequentialBools1);
            actualResult.Should().NotEqual(sequentialBools2);
        }