Exemple #1
0
        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"));
        }
Exemple #2
0
        public void EmptyTestMethodsThrows()
        {
            var mate     = TestableMultiAssemblyTestEnvironment.Create();
            var callback = new Mock <ITestMethodRunnerCallback>();

            Assert.Throws <ArgumentException>(() => mate.Run(new TestMethod[0], callback.Object));
        }
Exemple #3
0
        public void NullAssemblyNameThrows()
        {
            var mate = new TestableMultiAssemblyTestEnvironment();

            Assert.Throws <ArgumentNullException>(() => mate.Load((string)null));
            Assert.Throws <ArgumentNullException>(() => mate.Load(null, "configFile"));
        }
Exemple #4
0
        public void NullCallbackThrows()
        {
            var mate       = TestableMultiAssemblyTestEnvironment.Create();
            var testMethod = mate.Assembly1.Object.EnumerateTestMethods().First();

            Assert.Throws <ArgumentNullException>(() => mate.Run(new[] { testMethod }, null));
        }
Exemple #5
0
        public void ReturnsLoadedAssembly()
        {
            var wrapper = CreateStubExecutor();
            var mate    = new TestableMultiAssemblyTestEnvironment();

            var testAssembly = mate.Load(wrapper);

            Assert.Same(wrapper, testAssembly.ExecutorWrapper);
        }
Exemple #6
0
        public void RemovesDisposedTestAssemblies()
        {
            var wrapper  = CreateStubExecutor();
            var mate     = new TestableMultiAssemblyTestEnvironment();
            var assembly = mate.Load(wrapper);

            mate.Dispose();

            Assert.False(mate.EnumerateTestAssemblies().Any());
        }
Exemple #7
0
        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());
        }
Exemple #9
0
        public void DisposesTestAssembliesWhichDisposesWrapper()
        {
            var wrapper  = CreateStubExecutor();
            var mate     = new TestableMultiAssemblyTestEnvironment();
            var assembly = mate.Load(wrapper);

            mate.Dispose();

            Assert.True(wrapper.Dispose__Called);
        }
Exemple #10
0
        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);
        }
Exemple #12
0
        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());
        }
Exemple #13
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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());
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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();
        }
Exemple #19
0
        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"));
        }
Exemple #28
0
        public void NullExecutorWrapperThrows()
        {
            var mate = new TestableMultiAssemblyTestEnvironment();

            Assert.Throws <ArgumentNullException>(() => mate.Load((IExecutorWrapper)null));
        }