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 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"); }