public void ShouldNotAllowInvalidFilenames()
        {
            var target = new ReportFileNameInput()
            {
                SuppliedInput = new string(Path.GetInvalidFileNameChars())
            };

            Should.Throw <InputException>(() => target.Validate());
        }
        public void ShouldNotStripNoneHtmlAndJsonFileExtensions()
        {
            string input  = $"{DefaultName}.project";
            var    target = new ReportFileNameInput()
            {
                SuppliedInput = input
            };

            target.Validate().ShouldBe(input);
        }
        public void ShouldDefaultToMutationReportFilenameIfWhitespace()
        {
            var target = new ReportFileNameInput()
            {
                SuppliedInput = "  "
            };
            var result = target.Validate();

            result.ShouldBe(DefaultName);
        }
        public void ShouldUseDefaultFilenameIfNull()
        {
            var target = new ReportFileNameInput()
            {
                SuppliedInput = null
            };
            var result = target.Validate();

            result.ShouldBe(DefaultName);
        }
        public void ShouldDefaultToMutationReportFilenameIfEmptyString()
        {
            var target = new ReportFileNameInput()
            {
                SuppliedInput = string.Empty
            };
            var result = target.Validate();

            result.ShouldBe(DefaultName);
        }
        public void ShouldStripHtmlAndJsonFileExtensions()
        {
            var target = new ReportFileNameInput()
            {
                SuppliedInput = $"{DefaultName}.html"
            };

            target.Validate().ShouldBe(DefaultName);
            target = new ReportFileNameInput()
            {
                SuppliedInput = $"{DefaultName}.json"
            };
            target.Validate().ShouldBe(DefaultName);
        }
        public void ShouldHaveHelpText()
        {
            var target = new ReportFileNameInput();

            target.HelpText.ShouldBe(@$ " | default: '{target.Default}'");
        }