public void CreateOutputTemplate(OutputTemplateType outputTemplateType)
        {
            // Arrange
            IOutputTemplateFactory outputTemplateFactory = Substitute.For <IOutputTemplateFactory>();

            // Act
            OutputTemplateManager.CreateOutputTemplate(outputTemplateFactory, outputTemplateType);

            // Assert
            if (outputTemplateType == OutputTemplateType.Summary)
            {
                outputTemplateFactory.Received(1).CreateSummaryOutputTemplate();
                outputTemplateFactory.Received(0).CreateTestResultOutputTemplate();
            }
            else if (outputTemplateType == OutputTemplateType.TestResult)
            {
                outputTemplateFactory.Received(0).CreateSummaryOutputTemplate();
                outputTemplateFactory.Received(1).CreateTestResultOutputTemplate();
            }
        }
        /// <summary>
        /// Creates the output template.
        /// </summary>
        /// <param name="outputTemplateFactory">The output template factory.</param>
        /// <param name="outputTemplateType">Type of the output template.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException">outputTemplateType - null</exception>
        public static IOutputTemplate CreateOutputTemplate(IOutputTemplateFactory outputTemplateFactory, OutputTemplateType outputTemplateType)
        {
            switch (outputTemplateType)
            {
            case OutputTemplateType.Summary:
                return(outputTemplateFactory.CreateSummaryOutputTemplate());

            case OutputTemplateType.TestResult:
                return(outputTemplateFactory.CreateTestResultOutputTemplate());

            default:
                throw new ArgumentOutOfRangeException(nameof(outputTemplateType), outputTemplateType, null);
            }
        }