private static void ApplyHeaderRowsFormat(
            this Range range,
            HeaderRowsFormat format)
        {
            if (format == null)
            {
                return;
            }

            var implementedProperties = new[]
            {
                nameof(HeaderRowsFormat.RowsFormat),
            };

            format.ThrowOnNotImplementedProperty(implementedProperties);

            range.ApplyRowFormat(format.RowsFormat);
        }
        static HeaderRowsFormatTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <HeaderRowsFormat>
            {
                Name             = "constructor should throw ArgumentException when parameter 'outerBorders' is an empty enumerable scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <HeaderRowsFormat>();

                    var result = new HeaderRowsFormat(
                        new List <OuterBorder>(),
                        referenceObject.InnerBorders,
                        referenceObject.RowsFormat);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "outerBorders", "is an empty enumerable", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <HeaderRowsFormat>
            {
                Name             = "constructor should throw ArgumentException when parameter 'outerBorders' contains a null element scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <HeaderRowsFormat>();

                    var result = new HeaderRowsFormat(
                        new OuterBorder[0].Concat(referenceObject.OuterBorders).Concat(new OuterBorder[] { null }).Concat(referenceObject.OuterBorders).ToList(),
                        referenceObject.InnerBorders,
                        referenceObject.RowsFormat);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "outerBorders", "contains at least one null element", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <HeaderRowsFormat>
            {
                Name             = "constructor should throw ArgumentException when parameter 'innerBorders' is an empty enumerable scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <HeaderRowsFormat>();

                    var result = new HeaderRowsFormat(
                        referenceObject.OuterBorders,
                        new List <InnerBorder>(),
                        referenceObject.RowsFormat);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "innerBorders", "is an empty enumerable", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <HeaderRowsFormat>
            {
                Name             = "constructor should throw ArgumentException when parameter 'innerBorders' contains a null element scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <HeaderRowsFormat>();

                    var result = new HeaderRowsFormat(
                        referenceObject.OuterBorders,
                        new InnerBorder[0].Concat(referenceObject.InnerBorders).Concat(new InnerBorder[] { null }).Concat(referenceObject.InnerBorders).ToList(),
                        referenceObject.RowsFormat);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "innerBorders", "contains at least one null element", },
            });
        }