public void StrykerCLI_WithNoArgumentsAndNoConfigFile_ShouldStartStrykerWithConfigOptions() { var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); StrykerOptions options = new StrykerOptions("", "Console", "", 1000, null, "trace", false, 1, 90, 80, 70); string currentDirectory = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory($"..{Path.DirectorySeparatorChar}"); var runResults = new StrykerRunResult(options, 0.3M); mock.Setup(x => x.RunMutationTest(It.IsAny <StrykerOptions>())).Returns(runResults).Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new string[] { }); mock.VerifyAll(); Directory.SetCurrentDirectory(currentDirectory); }
public void StrykerCLI_WithNoArgumentsAndNoConfigFile_ShouldStartStrykerWithConfigOptions() { var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); var options = new StrykerOptions(); string currentDirectory = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory($"..{Path.DirectorySeparatorChar}"); var runResults = new StrykerRunResult(options, 0.3); mock.Setup(x => x.RunMutationTest(It.IsAny <StrykerOptions>(), It.IsAny <IEnumerable <LogMessage> >())).Returns(runResults).Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new string[] { }); mock.VerifyAll(); Directory.SetCurrentDirectory(currentDirectory); }
public void StrykerCLI_WithNoArgumentsAndNoConfigFile_ShouldStartStrykerWithConfigOptions() { var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.Is <StrykerOptions>(c => c.AdditionalTimeoutMS == 30000 && c.LogOptions.LogLevel == LogEventLevel.Warning && c.LogOptions.LogToFile == false && c.ProjectUnderTestNameFilter == null && c.Reporter == "Console" && c.MaxConcurrentTestrunners == int.MaxValue ))).Verifiable(); File.Move("stryker-config.json", "temp.json"); var target = new StrykerCLI(mock.Object); target.Run(new string[] { }); mock.VerifyAll(); File.Move("temp.json", "stryker-config.json"); }
public void StrykerCLI_WithLogConsoleArgument_ShouldPassLogConsoleArgumentsToStryker(string argName) { StrykerOptions actualOptions = null; var runResults = new StrykerRunResult(new StrykerOptions(), 0.3M); var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.IsAny <StrykerOptions>())) .Callback <StrykerOptions>((c) => actualOptions = c) .Returns(runResults) .Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new[] { argName, "debug" }); mock.VerifyAll(); actualOptions.LogOptions.LogLevel.ShouldBe(LogEventLevel.Debug); actualOptions.LogOptions.LogToFile.ShouldBeFalse(); }
public void StrykerCLI_ExcludedMutationsNamesShouldMapToMutatorTypes(Mutator expectedType, params string[] argValues) { var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); StrykerOptions options = new StrykerOptions(); var runResults = new StrykerRunResult(options, 0.3M); mock.Setup(x => x.RunMutationTest(It.IsAny <StrykerOptions>())).Returns(runResults); var target = new StrykerCLI(mock.Object); argValues.Count().ShouldBeGreaterThan(0); foreach (string argValue in argValues) { target.Run(new string[] { "-em", $"['{argValue}']" }); mock.Verify(x => x.RunMutationTest(It.Is <StrykerOptions>(o => o.ExcludedMutations.Single() == expectedType))); } }
public void StrykerCLI_WithNoArgumentsAndEmptyConfig_ShouldStartStrykerWithDefaultOptions() { var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.Is <StrykerOptions>(c => c.AdditionalTimeoutMS == 30000 && c.LogOptions.LogLevel == LogEventLevel.Warning && c.LogOptions.LogToFile == false && c.ProjectUnderTestNameFilter == null && c.Reporter == "Console" && c.MaxConcurrentTestrunners == int.MaxValue && c.ThresholdOptions.ThresholdBreak == 0 && c.ThresholdOptions.ThresholdLow == 60 && c.ThresholdOptions.ThresholdHigh == 80))).Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new string[] { }); mock.VerifyAll(); }
public void ShouldKeepDefaultDashboardUrlWhenArgumentNotProvided() { StrykerOptions options = null; var runResults = new StrykerRunResult(new StrykerOptions(), 0.3); var mock = new Mock<IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.IsAny<StrykerOptions>(), It.IsAny<IEnumerable<LogMessage>>())) .Callback<StrykerOptions, IEnumerable<LogMessage>>((c, m) => options = c) .Returns(runResults) .Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new string[] { }); mock.VerifyAll(); options.DashboardUrl.ShouldBe("https://dashboard.stryker-mutator.io"); }
public void ShouldOverwriteDefaultDashboardUrlWhenPassed(string argName) { StrykerOptions options = null; var runResults = new StrykerRunResult(new StrykerOptions(), 0.3); var mock = new Mock<IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.IsAny<StrykerOptions>(), It.IsAny<IEnumerable<LogMessage>>())) .Callback<StrykerOptions, IEnumerable<LogMessage>>((c, m) => options = c) .Returns(runResults) .Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new string[] { argName }); mock.VerifyAll(); options.DashboardUrl.ShouldBe("https://www.example.com/"); }
public void ShouldEnableDiffFeatureWhenDashboardComparePassed(params string[] argNames) { StrykerOptions options = null; var runResults = new StrykerRunResult(new StrykerOptions(), 0.3); var mock = new Mock<IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.IsAny<StrykerOptions>(), It.IsAny<IEnumerable<LogMessage>>())) .Callback<StrykerOptions, IEnumerable<LogMessage>>((c, m) => options = c) .Returns(runResults) .Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(argNames); mock.VerifyAll(); options.DiffEnabled.ShouldBeTrue(); }
public void StrykerCLI_WithDevModeArgument_ShouldPassDevModeArgumentsToStryker(string argName) { StrykerOptions actualOptions = null; var runResults = new StrykerRunResult(new StrykerOptions(), 0.3); var mock = new Mock<IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.IsAny<StrykerOptions>(), It.IsAny<IEnumerable<LogMessage>>())) .Callback<StrykerOptions, IEnumerable<LogMessage>>((c, m) => actualOptions = c) .Returns(runResults) .Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new string[] { argName }); mock.VerifyAll(); actualOptions.DevMode.ShouldBeTrue(); }
public void StrykerCLI_WithConfigFile_ShouldStartStrykerWithConfigFileOptions(string argName) { var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.Is <StrykerOptions>(c => c.AdditionalTimeoutMS == 9999 && c.LogOptions.LogLevel == LogEventLevel.Verbose && c.LogOptions.LogToFile == true && c.ProjectUnderTestNameFilter == "ExampleProject.csproj" && c.Reporter == "ReportOnly" && c.MaxConcurrentTestrunners == 10 && c.ThresholdOptions.ThresholdBreak == 20 && c.ThresholdOptions.ThresholdLow == 30 && c.ThresholdOptions.ThresholdHigh == 40))).Verifiable(); var target = new StrykerCLI(mock.Object); target.Run(new string[] { argName, "filled-stryker-config.json" }); mock.VerifyAll(); }
public void StrykerCLI_WithNoArgumentsAndNoConfigFile_ShouldStartStrykerWithConfigOptions() { var mock = new Mock <IStrykerRunner>(MockBehavior.Strict); mock.Setup(x => x.RunMutationTest(It.Is <StrykerOptions>(c => c.AdditionalTimeoutMS == 30000 && c.LogOptions.LogLevel == LogEventLevel.Information && c.LogOptions.LogToFile == false && c.ProjectUnderTestNameFilter == null && c.Reporter == "Console" && c.MaxConcurrentTestrunners == int.MaxValue && c.ThresholdOptions.ThresholdBreak == 0 && c.ThresholdOptions.ThresholdLow == 60 && c.ThresholdOptions.ThresholdHigh == 80))).Verifiable(); string currentDirectory = Directory.GetCurrentDirectory(); Directory.SetCurrentDirectory($"..{Path.DirectorySeparatorChar}"); var target = new StrykerCLI(mock.Object); target.Run(new string[] { }); mock.VerifyAll(); Directory.SetCurrentDirectory(currentDirectory); }