public void Test_safe_get_element_with_invalid_parameter_of_test_class_and_function_returns_expected_default_age()
        {
            // Arrange.
            var testArray = new[]
            {
                new SafeGetElementTestClass
                {
                    Identity    = 1,
                    Name        = "Pooh Bear",
                    DateOfBirth = new DateTime(DateTime.Now.AddYears(-73).Year, 6, 21)
                },
                new SafeGetElementTestClass
                {
                    Identity    = 2,
                    Name        = "Piglet",
                    DateOfBirth = new DateTime(DateTime.Now.AddYears(-54).Year, 2, 23)
                }
            };

            var expected = new SafeGetElementTestClass();

            // Act.
            var actual = testArray.SafeGetElement(6, new SafeGetElementTestClass(), (s) => s.SetAge());

            // Assert.
            actual.Age.Should().Be(expected.Age);
        }
        public void Test_safe_get_element_with_valid_parameter_of_test_class_and_extended_function_returns_expected_age()
        {
            // Arrange.
            var testArray = new[]
            {
                new SafeGetElementTestClass
                {
                    Identity    = 1,
                    Name        = "Pooh Bear",
                    DateOfBirth = new DateTime(DateTime.Now.AddYears(-73).Year, 6, 21)
                },
                new SafeGetElementTestClass
                {
                    Identity    = 2,
                    Name        = "Piglet",
                    DateOfBirth = new DateTime(DateTime.Now.AddYears(-54).Year, 2, 23)
                }
            };

            var expectedDateOfBirth = new DateTime(DateTime.Now.AddYears(-54).Year, 2, 23);
            var expectedAge         = expectedDateOfBirth.GetAge();

            var expected = new SafeGetElementTestClass
            {
                Identity    = 2,
                Name        = "Piglet",
                DateOfBirth = expectedDateOfBirth,
                Age         = expectedAge + 1000
            };

            // Act.
            var actual = testArray.SafeGetElement(1, new SafeGetElementTestClass(), (s) =>
            {
                var result  = s.SetAge();
                result.Age += 1000;
                return(s);
            });

            // Assert.
            actual.Age.Should().Be(expected.Age);
        }