public void MappingCache5_2()
        {
            // Arrange
            var    first  = new First();
            Second second = null;
            var    third  = new Third();
            var    fourth = new Fourth();
            var    fifth  = new Fifth();

            var map = MappingCache <First, Second, Third, Fourth, Fifth> .Map;

            // Act
            var result = map(first, second, third, fourth, fifth);

            // Assert
            Assert.IsNull(result.Second);
        }
        public void MappingCache5()
        {
            // Arrange
            var first  = new First();
            var second = new Second();
            var third  = new Third();
            var fourth = new Fourth();
            var fifth  = new Fifth();

            var map = MappingCache <First, Second, Third, Fourth, Fifth> .Map;

            // Act
            var result = map(first, second, third, fourth, fifth);

            // Assert
            Assert.AreEqual(result.Second.Third.Fourth.Fifth, fifth);
        }
        public void MappingCache7_2()
        {
            // Arrange
            var first = new First();
            Second second = null;
            var third = new Third();
            var fourth = new Fourth();
            var fifth = new Fifth();
            var sixth = new Sixth();
            var seventh = new Seventh();

            var map = MappingCache<First, Second, Third, Fourth, Fifth, Sixth, Seventh>.Map;

            // Act
            var result = map(first, second, third, fourth, fifth, sixth, seventh);

            // Assert
            Assert.Null(result.Second);
        }
        public void MappingCache6()
        {
            // Arrange
            var first = new First();
            var second = new Second();
            var third = new Third();
            var fourth = new Fourth();
            var fifth = new Fifth();
            var sixth = new Sixth();

            var map = MappingCache<First, Second, Third, Fourth, Fifth, Sixth>.Map;

            // Act
            var result = map(first, second, third, fourth, fifth, sixth);

            // Assert
            Assert.Equal(result.Second.Third.Fourth.Fifth.Sixth, sixth);
        }