public void Will_set_compile_configuration_paths_based_relative_to_settings_file_directory()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile
            {
                Compile = new BatchCompileConfiguration
                {
                    Executable       = "executable",
                    WorkingDirectory = "work",
                    SourceDirectory  = "source",
                    OutDirectory     = "out",
                }
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir7\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindFilePath(@"C:\settingsDir7\executable")).Returns(@"customPath1");
            service.Mock <IFileProbe>().Setup(x => x.FindFolderPath(@"C:\settingsDir7\work")).Returns(@"customPath2");
            service.Mock <IFileProbe>().Setup(x => x.FindFolderPath(@"C:\settingsDir7\source")).Returns(@"customPath3");
            service.Mock <IFileProbe>().Setup(x => x.FindFolderPath(@"C:\settingsDir7\out")).Returns(@"customPath4");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir7");

            Assert.Equal(@"customPath1", settings.Compile.Executable);
            Assert.Equal(@"customPath2", settings.Compile.WorkingDirectory);
            Assert.Equal(@"customPath3", settings.Compile.SourceDirectory);
            Assert.Equal(@"customPath4", settings.Compile.OutDirectory);
        }
        public void Will_convert_parent_testharnesslocationmode_to_custom_in_child_if_settingsfileadjacent()
        {
            var service = new TestableChutzpahTestSettingsService();

            var parentSettings = new ChutzpahTestSettingsFile
            {
                TestHarnessLocationMode = TestHarnessLocationMode.SettingsFileAdjacent
            };

            var childSettings = new ChutzpahTestSettingsFile
            {
                InheritFromParent = true
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:\settingsDir")).Returns(@"C:\settingsDir\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:")).Returns(@"C:\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsDir\settingsFile.json")).Returns(childSettings);
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsFile.json")).Returns(parentSettings);

            service.ClassUnderTest.FindSettingsFileFromDirectory(@"C:\settingsDir");

            Assert.Equal(@"C:\settingsDir", childSettings.SettingsFileDirectory);
            Assert.Equal(@"C:\", childSettings.TestHarnessDirectory);
            Assert.Equal(TestHarnessLocationMode.Custom, childSettings.TestHarnessLocationMode);
        }
예제 #3
0
        public void Will_expand_chutzpah_and_default_environment_variables(string variable, bool result)
        {
            var service = new TestableChutzpahTestSettingsService();

            service.ClassUnderTest.ClearCache();
            var varStr   = string.Format("%{0}%", variable);
            var settings = new ChutzpahTestSettingsFile
            {
                Compile = new BatchCompileConfiguration
                {
                    Executable   = string.Format("path {0} ok", varStr),
                    Arguments    = string.Format("path {0} ok", varStr),
                    OutDirectory = string.Format("path {0} ok", varStr),
                }
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir7\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFile("dir7");

            Assert.Equal(result, settings.Compile.Executable.Contains(varStr));
            Assert.Equal(result, settings.Compile.Arguments.Contains(varStr));
            Assert.Equal(result, settings.Compile.OutDirectory.Contains(varStr));
        }
예제 #4
0
        public void Will_map_deprecated_sourcedirectory_and_outdirectory_to_paths_setting()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile
            {
                Compile = new BatchCompileConfiguration
                {
                    Executable       = "executable",
                    WorkingDirectory = "work",
                    SourceDirectory  = "source",
                    OutDirectory     = "out",
                }
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir7\settingsFile.json");

            service.Mock <IFileProbe>().Setup(x => x.FindFilePath(@"C:\settingsDir7\source")).Returns((string)null);
            service.Mock <IFileProbe>().Setup(x => x.FindFolderPath(@"C:\settingsDir7\source")).Returns(@"customPath3");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir7");

            Assert.Equal(@"customPath3", settings.Compile.Paths.First().SourcePath);
            Assert.Equal(@"c:\settingsdir7\out", settings.Compile.Paths.First().OutputPath);
        }
예제 #5
0
        public void Will_set_isFile_for_output_if_path_ends_in_js()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile
            {
                Compile = new BatchCompileConfiguration
                {
                    Executable       = "executable",
                    WorkingDirectory = "work",
                    Paths            = new List <CompilePathMap> {
                        new CompilePathMap {
                            SourcePath = "source", OutputPath = "out.js", OutputPathType = null
                        }
                    }
                }
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir7\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir7");

            Assert.Equal(@"c:\settingsdir7\out.js", settings.Compile.Paths.First().OutputPath);
            Assert.True(settings.Compile.Paths.First().OutputPathIsFile);
        }
        public void Will_cache_missing_default_settings_for_missing_settings_files()
        {
            var service = new TestableChutzpahTestSettingsService();

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile("dir5")).Returns((string)null);
            service.ClassUnderTest.FindSettingsFileFromDirectory(@"dir5");

            var cached = service.ClassUnderTest.FindSettingsFileFromDirectory(@"dir5");

            service.Mock <IFileProbe>().Verify(x => x.FindTestSettingsFile("dir5"), Times.Once());
        }
        public void Will_set_settings_file_directory()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile();

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir");

            Assert.Equal(@"C:\settingsDir", settings.SettingsFileDirectory);
        }
        public void Will_get_cached_settings_given_same_settings_directory()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile();

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile("dir4")).Returns(@"C:\settingsDir4\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);
            service.ClassUnderTest.FindSettingsFileFromDirectory("dir4");

            var cached = service.ClassUnderTest.FindSettingsFileFromDirectory(@"C:\settingsDir4\");

            Assert.Equal(@"C:\settingsDir4", cached.SettingsFileDirectory);
        }
예제 #9
0
        public void Will_expand_variables_from_passed_in_environment()
        {
            var service     = new TestableChutzpahTestSettingsService();
            var environment = new ChutzpahSettingsFileEnvironment("path");

            environment.Path = @"dir7";
            environment.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty("SomeName", "SomeValue"));
            var varStr   = "%SomeName%";
            var settings = new ChutzpahTestSettingsFile
            {
                Compile = new BatchCompileConfiguration
                {
                    Executable = string.Format("path {0} ok", varStr),
                    Arguments  = string.Format("path {0} ok", varStr),
                    Paths      = new List <CompilePathMap> {
                        new CompilePathMap {
                            OutputPath = string.Format("path {0} ok", varStr)
                        }
                    },
                },
                References = new [] { new SettingsFileReference {
                                          Path = varStr, Include = varStr, Exclude = varStr
                                      } },
                Tests = new [] { new SettingsFileTestPath {
                                     Path = varStr, Include = varStr, Exclude = varStr
                                 } },
                Transforms = new [] { new TransformConfig {
                                          Path = varStr
                                      } },
                AMDBasePath = varStr,
                AMDBaseUrl  = varStr
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir7\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir7", new ChutzpahSettingsFileEnvironments(new [] { environment }));

            Assert.True(settings.Compile.Executable.Contains("SomeValue"));
            Assert.True(settings.Compile.Arguments.Contains("SomeValue"));
            Assert.True(settings.Compile.Paths.First().OutputPath.Contains("somevalue"));
            Assert.True(settings.References.ElementAt(0).Path.Contains("SomeValue"));
            Assert.True(settings.References.ElementAt(0).Includes[0].Contains("SomeValue"));
            Assert.True(settings.References.ElementAt(0).Excludes[0].Contains("SomeValue"));
            Assert.True(settings.Tests.ElementAt(0).Path.Contains("SomeValue"));
            Assert.True(settings.Tests.ElementAt(0).Includes[0].Contains("SomeValue"));
            Assert.True(settings.Tests.ElementAt(0).Excludes[0].Contains("SomeValue"));
            Assert.True(settings.Transforms.ElementAt(0).Path.Contains("SomeValue"));
            Assert.True(settings.AMDBasePath.Contains("SomeValue"));
            Assert.True(settings.AMDBaseUrl.Contains("SomeValue"));
        }
        public void Will_set_amdbasepath_based_relative_to_settings_file_directory()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile {
                AMDBasePath = "custom"
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir6\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindFolderPath(@"C:\settingsDir6\custom")).Returns(@"customPath");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir6");

            Assert.Equal(@"customPath", settings.AMDBasePath);
        }
        public void Will_set_custom_harness_directory_based_relative_to_settings_file_directory()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile {
                TestHarnessLocationMode = TestHarnessLocationMode.Custom, TestHarnessDirectory = "custom"
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir2\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindFolderPath(@"C:\settingsDir2\custom")).Returns(@"customPath");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir2");

            Assert.Equal(@"customPath", settings.TestHarnessDirectory);
        }
        public void Will_create_compile_out_dir_if_does_not_exist()
        {
            var service  = new TestableChutzpahTestSettingsService();
            var settings = new ChutzpahTestSettingsFile
            {
                Compile = new BatchCompileConfiguration
                {
                    Executable       = "executable",
                    WorkingDirectory = "work",
                    SourceDirectory  = "source",
                    OutDirectory     = "out",
                }
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(It.IsAny <string>())).Returns(@"C:\settingsDir7\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindFolderPath(@"C:\settingsDir7\out")).Returns <string>(null);
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(It.IsAny <string>())).Returns(settings);

            service.ClassUnderTest.FindSettingsFileFromDirectory("dir7");

            service.Mock <IFileSystemWrapper>().Verify(x => x.CreateDirectory(@"C:\settingsDir7\out"));
        }
        public void Will_merge_settings_between_parent_and_child()
        {
            var service = new TestableChutzpahTestSettingsService();

            var parentSettings = new ChutzpahTestSettingsFile
            {
                // Parent Only
                AMDBasePath = "parentAmdBasePath",
                CodeCoverageExecutionMode = CodeCoverageExecutionMode.Always,
                Framework = "parentFramework",

                // Both parent and child
                FrameworkVersion         = "parentVersion",
                TestHarnessDirectory     = "parentHarnessDirectory",
                TestHarnessLocationMode  = TestHarnessLocationMode.Custom,
                TestHarnessReferenceMode = TestHarnessReferenceMode.AMD,
                RootReferencePathMode    = RootReferencePathMode.SettingsFileDirectory,
                Compile = new BatchCompileConfiguration {
                    Mode = BatchCompileMode.External
                }
            };

            var childSettings = new ChutzpahTestSettingsFile
            {
                InheritFromParent = true,

                // Both parent and child
                FrameworkVersion         = "childVersion",
                TestHarnessLocationMode  = TestHarnessLocationMode.TestFileAdjacent,
                TestHarnessReferenceMode = TestHarnessReferenceMode.Normal,
                RootReferencePathMode    = RootReferencePathMode.DriveRoot,
                Compile = new BatchCompileConfiguration {
                    Mode = BatchCompileMode.External
                },

                TestPattern     = "childTestPattern",
                TestFileTimeout = 11,
                UserAgent       = "childUserAgent"
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:\settingsDir")).Returns(@"C:\settingsDir\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:")).Returns(@"C:\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsDir\settingsFile.json")).Returns(childSettings);
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsFile.json")).Returns(parentSettings);

            service.ClassUnderTest.FindSettingsFileFromDirectory(@"C:\settingsDir");

            Assert.Equal(@"C:\settingsDir", childSettings.SettingsFileDirectory);

            Assert.Equal(@"C:\parentAmdBasePath", childSettings.AMDBasePath);
            Assert.Equal(CodeCoverageExecutionMode.Always, childSettings.CodeCoverageExecutionMode);
            Assert.Equal(@"parentFramework", childSettings.Framework);

            Assert.NotEqual(parentSettings.Compile, childSettings.Compile);
            Assert.Equal(@"childVersion", childSettings.FrameworkVersion);
            Assert.Equal(null, childSettings.TestHarnessDirectory);
            Assert.Equal(TestHarnessLocationMode.TestFileAdjacent, childSettings.TestHarnessLocationMode);
            Assert.Equal(TestHarnessReferenceMode.Normal, childSettings.TestHarnessReferenceMode);
            Assert.Equal(RootReferencePathMode.DriveRoot, childSettings.RootReferencePathMode);

            Assert.Equal("childTestPattern", childSettings.TestPattern);
            Assert.Equal(11, childSettings.TestFileTimeout);
            Assert.Equal("childUserAgent", childSettings.UserAgent);
        }
        public void Will_merge_list_settings_and_set_settings_dir_property_for_applicable_settings()
        {
            var service = new TestableChutzpahTestSettingsService();

            var parentSettings = new ChutzpahTestSettingsFile
            {
                Tests = new List <SettingsFileTestPath> {
                    new SettingsFileTestPath {
                        Path = "parentTestPath"
                    }
                },
                References = new List <SettingsFileReference> {
                    new SettingsFileReference {
                        Path = "parentReferencePath"
                    }
                },
                Transforms = new List <TransformConfig> {
                    new TransformConfig {
                        Path = "parentTransformPath"
                    }
                },
                CodeCoverageExcludes = new List <string> {
                    "parentCodeCoverageExcludePath"
                },
                CodeCoverageIncludes = new List <string> {
                    "parentCodeCoverageIncludePath"
                },
                CodeCoverageIgnores = new List <string> {
                    "parentCodeCoverageIgnorePath"
                }
            };

            var childSettings = new ChutzpahTestSettingsFile
            {
                InheritFromParent = true,
                Tests             = new List <SettingsFileTestPath> {
                    new SettingsFileTestPath {
                        Path = "childTestPath"
                    }
                },
                References = new List <SettingsFileReference> {
                    new SettingsFileReference {
                        Path = "childReferencePath"
                    }
                },
                Transforms = new List <TransformConfig> {
                    new TransformConfig {
                        Path = "childTransformPath"
                    }
                },
                CodeCoverageExcludes = new List <string> {
                    "childCodeCoverageExcludePath"
                },
                CodeCoverageIncludes = new List <string> {
                    "childCodeCoverageIncludePath"
                },
                CodeCoverageIgnores = new List <string> {
                    "childCodeCoverageIgnorePath"
                }
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:\settingsDir")).Returns(@"C:\settingsDir\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:")).Returns(@"C:\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsDir\settingsFile.json")).Returns(childSettings);
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsFile.json")).Returns(parentSettings);

            service.ClassUnderTest.FindSettingsFileFromDirectory(@"C:\settingsDir");

            // Tests to run are not inherited
            Assert.Equal(1, childSettings.Tests.Count);
            Assert.Equal("childTestPath", childSettings.Tests.ElementAt(0).Path);
            Assert.Equal(@"C:\settingsDir", childSettings.Tests.ElementAt(0).SettingsFileDirectory);

            Assert.Equal(2, childSettings.References.Count);
            Assert.Equal("parentReferencePath", childSettings.References.ElementAt(0).Path);
            Assert.Equal(@"C:\", childSettings.References.ElementAt(0).SettingsFileDirectory);
            Assert.Equal("childReferencePath", childSettings.References.ElementAt(1).Path);
            Assert.Equal(@"C:\settingsDir", childSettings.References.ElementAt(1).SettingsFileDirectory);

            Assert.Equal(2, childSettings.Transforms.Count);
            Assert.Equal("parentTransformPath", childSettings.Transforms.ElementAt(0).Path);
            Assert.Equal(@"C:\", childSettings.Transforms.ElementAt(0).SettingsFileDirectory);
            Assert.Equal("childTransformPath", childSettings.Transforms.ElementAt(1).Path);
            Assert.Equal(@"C:\settingsDir", childSettings.Transforms.ElementAt(1).SettingsFileDirectory);

            Assert.Equal(2, childSettings.CodeCoverageIncludes.Count);
            Assert.Equal("parentCodeCoverageIncludePath", childSettings.CodeCoverageIncludes.ElementAt(0));
            Assert.Equal("childCodeCoverageIncludePath", childSettings.CodeCoverageIncludes.ElementAt(1));
            Assert.Equal(2, childSettings.CodeCoverageExcludes.Count);
            Assert.Equal("parentCodeCoverageExcludePath", childSettings.CodeCoverageExcludes.ElementAt(0));
            Assert.Equal("childCodeCoverageExcludePath", childSettings.CodeCoverageExcludes.ElementAt(1));
            Assert.Equal(2, childSettings.CodeCoverageIgnores.Count);
            Assert.Equal("parentCodeCoverageIgnorePath", childSettings.CodeCoverageIgnores.ElementAt(0));
            Assert.Equal("childCodeCoverageIgnorePath", childSettings.CodeCoverageIgnores.ElementAt(1));
        }
        public void Will_inherit_all_parent_settings_when_none_set_on_child()
        {
            var service = new TestableChutzpahTestSettingsService();

            var parentSettings = new ChutzpahTestSettingsFile
            {
                Tests = new List <SettingsFileTestPath> {
                    new SettingsFileTestPath {
                        Path = "parentTestPath"
                    }
                },
                References = new List <SettingsFileReference> {
                    new SettingsFileReference {
                        Path = "parentReferencePath"
                    }
                },
                Transforms = new List <TransformConfig> {
                    new TransformConfig {
                        Path = "parentTransformPath"
                    }
                },
                CodeCoverageExcludes = new List <string> {
                    "parentCodeCoverageExcludePath"
                },
                CodeCoverageIncludes = new List <string> {
                    "parentCodeCoverageIncludePath"
                },
                CodeCoverageIgnores = new List <string> {
                    "parentCodeCoverageIgnorePath"
                },
                Compile = new BatchCompileConfiguration {
                    Mode = BatchCompileMode.External
                },

                AMDBasePath = "parentAmdBasePath",
                CodeCoverageExecutionMode = CodeCoverageExecutionMode.Always,
                Framework                = "parentFramework",
                FrameworkVersion         = "parentVersion",
                TestHarnessDirectory     = "parentHarnessDirectory",
                TestHarnessLocationMode  = TestHarnessLocationMode.Custom,
                TestHarnessReferenceMode = TestHarnessReferenceMode.AMD,
                RootReferencePathMode    = RootReferencePathMode.SettingsFileDirectory,
                TestPattern              = "parentTestPattern",
                TestFileTimeout          = 10,
                UserAgent                = "parentUserAgent"
            };

            var childSettings = new ChutzpahTestSettingsFile
            {
                InheritFromParent = true
            };

            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:\settingsDir")).Returns(@"C:\settingsDir\settingsFile.json");
            service.Mock <IFileProbe>().Setup(x => x.FindTestSettingsFile(@"C:")).Returns(@"C:\settingsFile.json");
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsDir\settingsFile.json")).Returns(childSettings);
            service.Mock <IJsonSerializer>().Setup(x => x.DeserializeFromFile <ChutzpahTestSettingsFile>(@"C:\settingsFile.json")).Returns(parentSettings);

            service.ClassUnderTest.FindSettingsFileFromDirectory(@"C:\settingsDir");


            // Tests to run are not inherited
            Assert.Equal(0, childSettings.Tests.Count);

            Assert.Equal(1, childSettings.References.Count);
            Assert.Equal(1, childSettings.Transforms.Count);
            Assert.Equal(1, childSettings.CodeCoverageIncludes.Count);
            Assert.Equal(1, childSettings.CodeCoverageExcludes.Count);
            Assert.Equal(1, childSettings.CodeCoverageIgnores.Count);

            Assert.Equal(parentSettings.Compile, childSettings.Compile);
            Assert.Equal(@"C:\settingsDir", childSettings.SettingsFileDirectory);
            Assert.Equal(@"C:\parentAmdBasePath", childSettings.AMDBasePath);
            Assert.Equal(CodeCoverageExecutionMode.Always, childSettings.CodeCoverageExecutionMode);
            Assert.Equal(@"parentFramework", childSettings.Framework);
            Assert.Equal(@"parentVersion", childSettings.FrameworkVersion);
            Assert.Equal(@"C:\parentHarnessDirectory", childSettings.TestHarnessDirectory);
            Assert.Equal(TestHarnessLocationMode.Custom, childSettings.TestHarnessLocationMode);
            Assert.Equal(TestHarnessReferenceMode.AMD, childSettings.TestHarnessReferenceMode);
            Assert.Equal(RootReferencePathMode.SettingsFileDirectory, childSettings.RootReferencePathMode);
            Assert.Equal("parentTestPattern", childSettings.TestPattern);
            Assert.Equal(10, childSettings.TestFileTimeout);
            Assert.Equal("parentUserAgent", childSettings.UserAgent);
        }