/// <summary>
        /// Initializes a new instance of the <see cref="OutputTemplateManager"/> class.
        /// </summary>
        /// <param name="xmlPath">The XML path.</param>
        /// <param name="runResultParser">The run result parser.</param>
        /// <param name="directoryWrapper">The directory wrapper.</param>
        /// <exception cref="ArgumentException">Value cannot be null or whitespace. - xmlPath</exception>
        /// <exception cref="ArgumentNullException">
        /// runResultParser
        /// or
        /// directoryWrapper
        /// </exception>
        public OutputTemplateManager(string xmlPath, ITestRunResultParser runResultParser, IFileSystemManager directoryWrapper)
        {
            if (string.IsNullOrWhiteSpace(xmlPath))
            {
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(xmlPath));
            }

            _xmlPath             = xmlPath;
            _testRunResultParser = runResultParser ?? throw new ArgumentNullException(nameof(runResultParser));
            _directoryWrapper    = directoryWrapper ?? throw new ArgumentNullException(nameof(directoryWrapper));
        }
        public void Constructor_ShouldThrowArgumentException_WhenXmlPathIsNullOrWhitespace(string xmlPath)
        {
            // Arrange
            ITestRunResultParser testRunResultParser = Substitute.For <ITestRunResultParser>();
            IFileSystemManager   fileSystemManager   = Substitute.For <IFileSystemManager>();

            // Act
            ArgumentException argumentException = Assert.Throws <ArgumentException>(() => new OutputTemplateManager(xmlPath, testRunResultParser, fileSystemManager));

            // Assert
            Assert.AreEqual($"Value cannot be null or whitespace.{Environment.NewLine}Parameter name: xmlPath", argumentException.Message);
        }
 public void SetUp()
 {
     _fileSystemManager   = Substitute.For <IFileSystemManager>();
     _testRunResultParser = Substitute.For <ITestRunResultParser>();
 }