public Task Should_Shallow_Clone_All_Properties() { var expected = new MinVerSettings { AutoIncrement = MinVerAutoIncrement.Minor, BuildMetadata = "123", DefaultPreReleasePhase = "preview", MinimumMajorMinor = "1.2", Repo = DirectoryPath.FromString("/repo/custom"), TagPrefix = "v", PreferGlobalTool = true, NoFallback = true, Verbosity = MinVerVerbosity.Trace, ToolVerbosity = DotNetVerbosity.Detailed, DiagnosticOutput = true, ToolPath = FilePath.FromString("/tools/custom/minver.exe"), ToolTimeout = TimeSpan.FromMinutes(5), WorkingDirectory = DirectoryPath.FromString("/working/folder"), NoWorkingDirectory = true, ArgumentCustomization = s => s, EnvironmentVariables = new Dictionary <string, string> { { "MINVERTESTVAR", "SOMEVALUE" } }, HandleExitCode = i => false, }; return(Verifier.Verify(expected.Clone())); }
public void Should_Shallow_Clone_All_Properties() { var expected = new MinVerSettings { AutoIncrement = MinVerAutoIncrement.Minor, BuildMetadata = "123", DefaultPreReleasePhase = "preview", MinimumMajorMinor = "1.2", Repo = DirectoryPath.FromString("/repo/custom"), TagPrefix = "v", PreferGlobalTool = true, NoFallback = true, Verbosity = MinVerVerbosity.Trace, ToolVerbosity = DotNetCoreVerbosity.Detailed, DiagnosticOutput = true, ToolPath = FilePath.FromString("/tools/custom/minver.exe"), ToolTimeout = TimeSpan.FromMinutes(5), WorkingDirectory = DirectoryPath.FromString("/working/folder"), NoWorkingDirectory = true, ArgumentCustomization = s => s, EnvironmentVariables = new Dictionary <string, string> { { "MINVERTESTVAR", "SOMEVALUE" } }, HandleExitCode = i => false, }; var actual = expected.Clone(); actual.AutoIncrement.Should().Be(expected.AutoIncrement); actual.BuildMetadata.Should().Be(expected.BuildMetadata); actual.DefaultPreReleasePhase.Should().Be(expected.DefaultPreReleasePhase); actual.MinimumMajorMinor.Should().Be(expected.MinimumMajorMinor); actual.Repo.Should().Be(expected.Repo); actual.TagPrefix.Should().Be(expected.TagPrefix); actual.PreferGlobalTool.Should().Be(expected.PreferGlobalTool); actual.NoFallback.Should().Be(expected.NoFallback); actual.Verbosity.Should().Be(expected.Verbosity); actual.ToolVerbosity.Should().Be(expected.ToolVerbosity); actual.DiagnosticOutput.Should().Be(expected.DiagnosticOutput); actual.ToolPath.Should().Be(expected.ToolPath); actual.ToolTimeout.Should().Be(expected.ToolTimeout); actual.WorkingDirectory.Should().Be(expected.WorkingDirectory); actual.NoWorkingDirectory.Should().Be(expected.NoWorkingDirectory); actual.ArgumentCustomization.Should().Be(expected.ArgumentCustomization); actual.EnvironmentVariables.Should().BeEquivalentTo(expected.EnvironmentVariables); actual.HandleExitCode.Should().BeEquivalentTo(expected.HandleExitCode); var properties = typeof(MinVerSettings) .GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy) .Select(p => p.Name) .ToList(); // Sanity check & alarm to detect changes in properties that need to be considered in the cloning properties.Should().HaveCount(18); }