public void ShouldBeAbleToSetCustomOptions(
			string expectedAssembleFileName,
			string expectedReportFileName,
			bool expectedNoHeader,
			bool expectedFullPrinting,
			TextUIOptionBuilder.XmlReportFormat expectedReportFormat,
			string expectedOutputFileName,
			string expectedIncludeCategory,
			string expectedExcludeCategory)
        {
            TextUIOptionBuilder builder = new TextUIOptionBuilder();
            builder.AddAssembleFileName(expectedAssembleFileName)
                .SetReportFileName(expectedReportFileName)
                .SetNoHeader(expectedNoHeader)
                .SetFullPrinting(expectedFullPrinting)
                .SetReportFormat(expectedReportFormat)
                .SetOutputFileName(expectedOutputFileName)
                .SetIncludeCategory(expectedIncludeCategory)
                .SetExcludeCategory(expectedExcludeCategory);

            Assert.That(builder.AssembleFileNames, new CollectionContainsConstraint(expectedAssembleFileName));
            Assert.That(builder.ReportFileName, Is.EqualTo(expectedReportFileName));
            Assert.That(builder.NoHeader, Is.EqualTo(expectedNoHeader));
            Assert.That(builder.FullPrinting, Is.EqualTo(expectedFullPrinting));
            Assert.That(builder.ReportFormat, Is.EqualTo(expectedReportFormat));
            Assert.That(builder.OutputFileName, Is.EqualTo(expectedOutputFileName));
            Assert.That(builder.IncludeCategory, Is.EqualTo(expectedIncludeCategory));
            Assert.That(builder.ExcludeCategory, Is.EqualTo(expectedExcludeCategory));
        }
        public bool ShouldBeAbleToChangeOutputFileName(string outputFileName)
        {
            TextUIOptionBuilder builder = new TextUIOptionBuilder();
            builder.AddAssembleFileName("hogehoge")
                .SetReportFileName("report.xml")
                .SetOutputFileName(outputFileName);

            string actual = string.Join(" ", builder.Build());
            return actual.Contains("-out:" + outputFileName);
        }
        public bool ShouldBeAbleToChangeNoHeaderOption(bool noHeader)
        {
            TextUIOptionBuilder builder = new TextUIOptionBuilder();
            builder.AddAssembleFileName("hogehoge")
                .SetReportFileName("report.xml")
                .SetNoHeader(noHeader);

            string actual = string.Join(" ", builder.Build());
            return actual.Contains("-noheader");
        }
        public bool ShouldBeAbleToChangeFullPrintingOption(bool fullPrinting)
        {
            TextUIOptionBuilder builder = new TextUIOptionBuilder();
            builder.AddAssembleFileName("hogehoge")
                .SetReportFileName("report.xml")
                .SetFullPrinting(fullPrinting);

            string actual = string.Join(" ", builder.Build());
            return actual.Contains("-full");
        }
 public void RunWithTextUI(Assembly assembly, string reportFileName, string category, TextUIOptionBuilder.XmlReportFormat format = TextUIOptionBuilder.XmlReportFormat.NUnit2)
 {
     using (var sw = new StringWriter())
     {
         TextUI runner = new TextUI(sw);
         TextUIOptionBuilder builder = new TextUIOptionBuilder();
         builder.AddAssembleFileName(assembly.FullName)
             .SetReportFileName(reportFileName)
             .SetReportFormat(format)
             .SetIncludeCategory (category);
         string[] option = builder.Build();
         runner.Execute(option);
         Debug.Log(sw.GetStringBuilder().ToString());
     }
 }
        public void RunWithTextUI(Assembly assembly, string reportFileName, TextUIOptionBuilder.XmlReportFormat format = TextUIOptionBuilder.XmlReportFormat.NUnit2)
        {
            if (assembly == null)
            {
                throw new ArgumentNullException("assembly was null.");
            }

            using (var sw = new StringWriter())
            {
                TextUI runner = new TextUI(sw);
                TextUIOptionBuilder builder = new TextUIOptionBuilder();
                builder.AddAssembleFileName(assembly.FullName)
                    .SetReportFileName(reportFileName)
                    .SetReportFormat(format);
                string[] option = builder.Build();
                runner.Execute(option);
                Debug.Log(sw.GetStringBuilder().ToString());
            }
        }
        public bool ShouldBeAbleToChangeReportFormat(TextUIOptionBuilder.XmlReportFormat reportFormat)
        {
            string expected = string.Empty;
            if (reportFormat == TextUIOptionBuilder.XmlReportFormat.NUnit2)
            {
                expected = "-format:nunit2";
            }
            else if (reportFormat == TextUIOptionBuilder.XmlReportFormat.NUnit3)
            {
                expected = "-format:nunit3";
            }

            TextUIOptionBuilder builder = new TextUIOptionBuilder();
            builder.AddAssembleFileName("hogehoge")
                .SetReportFileName("report.xml")
                .SetReportFormat(reportFormat);
            string actual = string.Join(" ", builder.Build());
            return actual.Contains(expected);
        }
 string BuildFormat(TextUIOptionBuilder.XmlReportFormat value)
 {
     string result = string.Empty;
     switch (value)
     {
         case TextUIOptionBuilder.XmlReportFormat.NUnit2:
             result = "-format:nunit2";
             break;
         case TextUIOptionBuilder.XmlReportFormat.NUnit3:
             result = "-format:nunit3";
             break;
         default:
             throw new ArgumentException("The argument format was not supported => " + value.ToString());
     }
     return result;
 }
 public TextUIOptionBuilder SetReportFormat(TextUIOptionBuilder.XmlReportFormat value)
 {
     ReportFormat = value;
     return this;
 }