public void ItShouldRunTheAsemblyInitialiseOnceAndBeforeEverythingElseIfPresent() { var proxy = new ProxyStub(); var extractor = new Mock<ITestMethodExtractor>(); var runner = new MsTestRunner(proxy, extractor.Object); var assemblyInit = BuildMethod("SomeTestClass", "AssemblyInit"); var testmethodMock1 = BuildMethod("SomeTestClass", "SomeTestMethod1"); var testmethodMock2 = BuildMethod("SomeTestClass", "SomeTestMethod2"); var methods = new IMethodInfo[] { testmethodMock1.Object, testmethodMock2.Object }; extractor.Setup(e => e.GetTestMethods()).Returns(methods); extractor.Setup(e => e.GetAssemblyInitialise()).Returns(assemblyInit.Object); runner.Run(methods).Wait(); Assert.AreEqual(3, proxy.Log.Count); Assert.IsTrue(proxy.Log[0].Type == "SomeTestClass" && proxy.Log[0].Method == "AssemblyInit"); Assert.IsTrue(proxy.Log[1].Type == "SomeTestClass" && proxy.Log[1].Method == "SomeTestMethod1"); Assert.IsTrue(proxy.Log[2].Type == "SomeTestClass" && proxy.Log[2].Method == "SomeTestMethod2"); }
public void GivenThereIsOnlyOneTestMethodTheRunnerShouldRunATaskForExecutingThisOneTestMethodThroughtItsProxy() { var proxyMock = new Mock<IProxy>(); var extractor = new Mock<ITestMethodExtractor>(); var runner = new MsTestRunner(proxyMock.Object, extractor.Object); var testmethodMock = BuildMethod("SomeTestClass", "SomeTestMethod"); var methods = new IMethodInfo[] { testmethodMock.Object }; extractor.Setup(e => e.GetTestMethods()).Returns(methods); runner.Run(methods).Wait(); proxyMock.Verify(p => p.Run("SomeTestClass", "SomeTestMethod"), Times.Once()); }
public void ItShouldRunTestInitializeOfTheTestClassBeforeEachTestMethodOfTheTestClass() { var proxy = new ProxyStub(); var extractor = new Mock<ITestMethodExtractor>(); var runner = new MsTestRunner(proxy, extractor.Object); var testInitialize = BuildMethod("SomeTestClass", "TestInitialize"); var testmethodMock1 = BuildMethod("SomeTestClass", "SomeTestMethod1"); var testmethodMock2 = BuildMethod("SomeTestClass", "SomeTestMethod2"); var methods = new IMethodInfo[] { testmethodMock1.Object, testmethodMock2.Object }; extractor.Setup(e => e.GetTestMethods()).Returns(methods); extractor.Setup(e => e.GetTestInitialize(testmethodMock1.Object)).Returns(testInitialize.Object); extractor.Setup(e => e.GetTestInitialize(testmethodMock2.Object)).Returns(testInitialize.Object); runner.Run(methods).Wait(); Assert.AreEqual(4, proxy.Log.Count); Assert.IsTrue(proxy.Log[0].Type == "SomeTestClass" && proxy.Log[0].Method == "TestInitialize"); Assert.IsTrue(proxy.Log[1].Type == "SomeTestClass" && proxy.Log[1].Method == "SomeTestMethod1"); Assert.IsTrue(proxy.Log[2].Type == "SomeTestClass" && proxy.Log[2].Method == "TestInitialize"); Assert.IsTrue(proxy.Log[3].Type == "SomeTestClass" && proxy.Log[3].Method == "SomeTestMethod2"); }
public void GivenThereAreTwotMethodsTheRunnerShouldRunnerATaskForExecutingTheseTwoTestMethodThroughtItsProxy() { var proxyMock = new Mock<IProxy>(); var extractor = new Mock<ITestMethodExtractor>(); var runner = new MsTestRunner(proxyMock.Object, extractor.Object); var testmethodMock1 = BuildMethod("SomeTestClass", "SomeTestMethod1"); var testmethodMock2 = BuildMethod("SomeTestClass", "SomeTestMethod2"); var methods = new IMethodInfo[] { testmethodMock1.Object, testmethodMock2.Object }; runner.Run(methods).Wait(); proxyMock.Verify(p => p.Run("SomeTestClass", "SomeTestMethod1"), Times.Once()); proxyMock.Verify(p => p.Run("SomeTestClass", "SomeTestMethod2"), Times.Once()); proxyMock.Verify(p => p.Run(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2)); }