public void FilterWithTruePredicate() { var mate = new TestableMultiAssemblyTestEnvironment(); var assembly1 = mate.Load(CreateStubExecutor()); var assembly2 = mate.Load(CreateStubExecutor("assembly", "config")); var tests = mate.EnumerateTestMethods(testMethod => true); Assert.Equal(8, tests.Count()); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "ThisIsTheType.NonSkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "ThisIsTheType.SkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "This is a custom display name")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "Monkey.DummyMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "ThisIsTheType.NonSkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "ThisIsTheType.SkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "This is a custom display name")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "Monkey.DummyMethod")); }
public void EmptyTestMethodsThrows() { var mate = TestableMultiAssemblyTestEnvironment.Create(); var callback = new Mock <ITestMethodRunnerCallback>(); Assert.Throws <ArgumentException>(() => mate.Run(new TestMethod[0], callback.Object)); }
public void NullAssemblyNameThrows() { var mate = new TestableMultiAssemblyTestEnvironment(); Assert.Throws <ArgumentNullException>(() => mate.Load((string)null)); Assert.Throws <ArgumentNullException>(() => mate.Load(null, "configFile")); }
public void NullCallbackThrows() { var mate = TestableMultiAssemblyTestEnvironment.Create(); var testMethod = mate.Assembly1.Object.EnumerateTestMethods().First(); Assert.Throws <ArgumentNullException>(() => mate.Run(new[] { testMethod }, null)); }
public void ReturnsLoadedAssembly() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var testAssembly = mate.Load(wrapper); Assert.Same(wrapper, testAssembly.ExecutorWrapper); }
public void RemovesDisposedTestAssemblies() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Dispose(); Assert.False(mate.EnumerateTestAssemblies().Any()); }
public void ExecutorShouldBeDisposedOnUnload() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Unload(assembly); Assert.True(wrapper.Dispose__Called); }
public void RemovesDisposedTestAssemblies() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Dispose(); Assert.False(mate.EnumerateTestAssemblies().Any()); }
public void DisposesTestAssembliesWhichDisposesWrapper() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Dispose(); Assert.True(wrapper.Dispose__Called); }
public void LoadedAssemblyIsPartOfEnumeratedAssemblyList() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Unload(assembly); Assert.Equal(0, mate.EnumerateTestAssemblies().Count()); }
public void DisposesTestAssembliesWhichDisposesWrapper() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Dispose(); Assert.True(wrapper.Dispose__Called); }
public void FilterWithFalsePredicate() { var mate = new TestableMultiAssemblyTestEnvironment(); var assembly1 = mate.Load(CreateStubExecutor()); var assembly2 = mate.Load(CreateStubExecutor("assembly", "config")); var tests = mate.EnumerateTestMethods(testMethod => false); Assert.Equal(0, tests.Count()); }
public void TestMethodNotForThisEnvironmentThrows() { var wrapper = new Mock <IExecutorWrapper>(); var mate = TestableMultiAssemblyTestEnvironment.Create(); var testMethod = new TestMethod(null, null, null); var testClass = new TestClass(null, new[] { testMethod }); var testAssembly = new TestAssembly(wrapper.Object, new[] { testClass }); var callback = new Mock <ITestMethodRunnerCallback>(); Assert.Throws <ArgumentException>(() => mate.Run(new[] { testMethod }, callback.Object)); }
public void LoadedAssemblyIsPartOfEnumeratedAssemblyList() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); var assemblies = mate.EnumerateTestAssemblies(); TestAssembly testAssembly = Assert.Single(assemblies); Assert.Same(assembly, testAssembly); }
public void LoadedAssemblyIsPartOfEnumeratedAssemblyList() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); var assemblies = mate.EnumerateTestAssemblies(); TestAssembly testAssembly = Assert.Single(assemblies); Assert.Same(assembly, testAssembly); }
public void RunOnlyCallsRunOnAssembliesWithMethodsToBeRun() { var mate = TestableMultiAssemblyTestEnvironment.Create(); var callback = new Mock <ITestMethodRunnerCallback>(); TestMethod assembly1Method1 = mate.Assembly1.Object.EnumerateTestMethods().First(); TestMethod assembly2Method2 = mate.Assembly2.Object.EnumerateTestMethods().First(); mate.Assembly1.Setup(a => a.Run(new[] { assembly1Method1 }, callback.Object)) .Returns("<assembly1/>") .Verifiable(); mate.Run(new[] { assembly1Method1 }, callback.Object); mate.Assembly1.Verify(); mate.Assembly2.Verify(c => c.Run(It.IsAny <IEnumerable <TestMethod> >(), callback.Object), Times.Never()); }
public void RunReturnsAssembliesXml() { var mate = TestableMultiAssemblyTestEnvironment.Create(); var callback = new Mock <ITestMethodRunnerCallback>(); TestMethod assembly1Method1 = mate.Assembly1.Object.EnumerateTestMethods().First(); TestMethod assembly2Method2 = mate.Assembly2.Object.EnumerateTestMethods().First(); mate.Assembly1.Setup(a => a.Run(new[] { assembly1Method1 }, callback.Object)) .Returns("<assembly1/>") .Verifiable(); mate.Assembly2.Setup(c => c.Run(new[] { assembly2Method2 }, callback.Object)) .Returns("<assembly2/>") .Verifiable(); var result = mate.Run(mate.EnumerateTestMethods(), callback.Object); Assert.Equal("<assemblies><assembly1/><assembly2/></assemblies>", result); }
public void RunSortsClassesByAssemblyAndCallsRunOnAssemblies() { var mate = TestableMultiAssemblyTestEnvironment.Create(); var callback = new Mock <ITestMethodRunnerCallback>(); TestMethod assembly1Method1 = mate.Assembly1.Object.EnumerateTestMethods().First(); TestMethod assembly2Method2 = mate.Assembly2.Object.EnumerateTestMethods().First(); mate.Assembly1.Setup(a => a.Run(new[] { assembly1Method1 }, callback.Object)) .Returns("<assembly1/>") .Verifiable(); mate.Assembly2.Setup(c => c.Run(new[] { assembly2Method2 }, callback.Object)) .Returns("<assembly2/>") .Verifiable(); mate.Run(mate.EnumerateTestMethods(), callback.Object); mate.Assembly1.Verify(); mate.Assembly2.Verify(); }
public static TestableMultiAssemblyTestEnvironment Create() { var wrapper1 = new Mock <IExecutorWrapper>(); var wrapper2 = new Mock <IExecutorWrapper>(); var class1Method1 = new TestMethod("method1", null, null); var class2Method2 = new TestMethod("method2", null, null); var class1 = new TestClass("foo", new[] { class1Method1 }); var class2 = new TestClass("bar", new[] { class2Method2 }); var assembly1 = new Mock <TestAssembly>(wrapper1.Object, new[] { class1 }); var assembly2 = new Mock <TestAssembly>(wrapper2.Object, new[] { class2 }); var result = new TestableMultiAssemblyTestEnvironment(); result.Assembly1 = assembly1; result.Assembly2 = assembly2; result.testAssemblies.Add(assembly1.Object); result.testAssemblies.Add(assembly2.Object); return(result); }
public void FilterWithFalsePredicate() { var mate = new TestableMultiAssemblyTestEnvironment(); var assembly1 = mate.Load(CreateStubExecutor()); var assembly2 = mate.Load(CreateStubExecutor("assembly", "config")); var tests = mate.EnumerateTestMethods(testMethod => false); Assert.Equal(0, tests.Count()); }
public static TestableMultiAssemblyTestEnvironment Create() { var wrapper1 = new Mock<IExecutorWrapper>(); var wrapper2 = new Mock<IExecutorWrapper>(); var class1Method1 = new TestMethod("method1", null, null); var class2Method2 = new TestMethod("method2", null, null); var class1 = new TestClass("foo", new[] { class1Method1 }); var class2 = new TestClass("bar", new[] { class2Method2 }); var assembly1 = new Mock<TestAssembly>(wrapper1.Object, new[] { class1 }); var assembly2 = new Mock<TestAssembly>(wrapper2.Object, new[] { class2 }); var result = new TestableMultiAssemblyTestEnvironment(); result.Assembly1 = assembly1; result.Assembly2 = assembly2; result.testAssemblies.Add(assembly1.Object); result.testAssemblies.Add(assembly2.Object); return result; }
public void LoadedAssemblyIsPartOfEnumeratedAssemblyList() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Unload(assembly); Assert.Equal(0, mate.EnumerateTestAssemblies().Count()); }
public void ExecutorShouldBeDisposedOnUnload() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var assembly = mate.Load(wrapper); mate.Unload(assembly); Assert.True(wrapper.Dispose__Called); }
public void ReturnsLoadedAssembly() { var wrapper = CreateStubExecutor(); var mate = new TestableMultiAssemblyTestEnvironment(); var testAssembly = mate.Load(wrapper); Assert.Same(wrapper, testAssembly.ExecutorWrapper); }
public void NullExecutorWrapperThrows() { var mate = new TestableMultiAssemblyTestEnvironment(); Assert.Throws<ArgumentNullException>(() => mate.Load((IExecutorWrapper)null)); }
public void NullAssemblyNameThrows() { var mate = new TestableMultiAssemblyTestEnvironment(); Assert.Throws<ArgumentNullException>(() => mate.Load((string)null)); Assert.Throws<ArgumentNullException>(() => mate.Load(null, "configFile")); }
public void UnfilteredReturnsAllTestsFromAllClasses() { var mate = new TestableMultiAssemblyTestEnvironment(); var assembly1 = mate.Load(CreateStubExecutor()); var assembly2 = mate.Load(CreateStubExecutor("assembly", "config")); var tests = mate.EnumerateTestMethods(); Assert.Equal(8, tests.Count()); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "ThisIsTheType.NonSkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "ThisIsTheType.SkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "This is a custom display name")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly1 && tm.DisplayName == "Monkey.DummyMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "ThisIsTheType.NonSkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "ThisIsTheType.SkipMethod")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "This is a custom display name")); Assert.True(tests.Any(tm => tm.TestClass.TestAssembly == assembly2 && tm.DisplayName == "Monkey.DummyMethod")); }
public void NullExecutorWrapperThrows() { var mate = new TestableMultiAssemblyTestEnvironment(); Assert.Throws <ArgumentNullException>(() => mate.Load((IExecutorWrapper)null)); }