Пример #1
0
        public void StubInterface()
        {
            var myObject = Stub.Interface <IMyObject>();

            myObject.MyMethod(1);
            myObject.MyMethod(2);
            myObject.MyMethod(3);


            AssertInvocationsWasMade.
            Once.ForMethodCall(() => myObject.MyMethod(1)).
            Between(1, 2).ForMethodCall(() => myObject.MyMethod(2)).
            Once.ForMethodCall(() => myObject.MyMethod(3)).
            InOrderAsSpecified();


            AssertInvocationsWasMade.MatchingExpectationsFor(myObject);

            AssertInvocationsWasMade.None.ForMethodCall(() => myObject.MyGenericMethod(0));


            Assert.That(myObject.MyProperty, Is.TypeOf <object>());

            Assert.That(myObject.MyIntProperty, Is.EqualTo(0));

            int outValue;

            myObject.MyMethodWithOutParameter(0, out outValue);
            Assert.That(outValue, Is.EqualTo(0));
        }
Пример #2
0
        public void ForStubInvocationsInOrderAsSpecified()
        {
            var myObject = Stub.Interface <IMyObject>();

            myObject.MyMethod(1);
            myObject.MyMethod(1);
            myObject.MyMethod(2);
            myObject.MyMethod(1);
            myObject.MyMethod(3);
            myObject.MyMethod(1);

            AssertInvocationsWasMade.
            AtLeastOnce.ForMethodCall(() => myObject.MyMethod(1)).
            AtLeastOnce.ForMethodCall(() => myObject.MyMethod(2)).
            AtLeastOnce.ForMethodCall(() => myObject.MyMethod(1)).
            AtLeastOnce.ForMethodCall(() => myObject.MyMethod(3)).
            AtLeastOnce.ForMethodCall(() => myObject.MyMethod(1)).
            InOrderAsSpecified();

            var ex =
                Assert.Throws <ExpectationsException>(
                    () => AssertInvocationsWasMade.
                    AtLeast(3).ForMethodCall(() => myObject.MyMethod(1)).
                    AtLeastOnce.ForMethodCall(() => myObject.MyMethod(2)).
                    AtLeastOnce.ForMethodCall(() => myObject.MyMethod(3)).
                    InOrderAsSpecified());

            Assert.That(ex.Message, Is.StringStarting("Invocations was not made in specified order (first mismatch at invocation 'myObject.MyMethod(2)'):"));
        }
Пример #3
0
        public void Run_CallsApi()
        {
            var tc   = NUnit.Framework.TestContext.CurrentContext.TestDirectory;
            var strm = System.IO.File.OpenRead(tc + "./LuaScripts/SimpleTestCase.lua");
            var hr   = new SimpleHarness();

            runner = new ScriptRunner();

            IOC.ResolveImports(runner);

            Expect.MethodCall(() => apiBridge.Init());

            runner.Load(strm);

            Expect.MethodCall(() => apiBridge.BeginTestCase("SimpleHarness", "Mutagen.FrontEnd.Test.dll"));
            Expect.Once.MethodCall(() => apiBridge.TestResults()).Returns(new List <TestResult>());
            Expect.Once.MethodCall(() => apiBridge.TestHarness()).Returns(hr);

            Expect.Once.MethodCall(() => apiBridge.CommitTestCaseCode(Any <IAssertable> .Value.Matching(x => x != null).AsInterface));
            Expect.Once.MethodCall(() => apiBridge.ExecTestCase());

            runner.Run();

            AssertInvocationsWasMade.MatchingExpectationsFor(apiBridge);
        }
Пример #4
0
 public void BeginTestCase_CallsApi()
 {
     Expect.Once.MethodCall(() => apiBridge.BeginTestCase("SimpleHarness", "Mutagen.LuaFrontend.Test.dll"));
     Expect.Once.MethodCall(() => apiBridge.TestHarness()).Returns(new SimpleHarness());
     ReadScript("./LuaScripts/BeginTestCase.lua");
     LuaUtil.PublishObjectMethods(api, luaEnv);
     luaEnv.DoChunk(scriptChunk);
     AssertInvocationsWasMade.MatchingExpectationsFor(apiBridge);
 }
Пример #5
0
        public void CallTo_AddFacette_CallsApi()
        {
            Expect.Once.MethodCall(() => apiBridge.AddFacette("fnord", 1, 7));

            ReadScript("./LuaScripts/AddFacette.lua");
            LuaUtil.PublishObjectMethods(api, luaEnv);
            luaEnv.DoChunk(scriptChunk);

            AssertInvocationsWasMade.MatchingExpectationsFor(apiBridge);
        }
Пример #6
0
        public void CallTo_CreateFacette_CallsApi()
        {
            Expect.Once.MethodCall(() => apiBridge.CreateFacette("facName", Any <System.Collections.Generic.List <object> > .Value));

            ReadScript("./LuaScripts/CreateFacette.lua");
            LuaUtil.PublishObjectMethods(api, luaEnv);
            luaEnv.DoChunk(scriptChunk);

            AssertInvocationsWasMade.MatchingExpectationsFor(apiBridge);
        }
Пример #7
0
        public void CallTo_EndTestCase_CallsApi()
        {
            Expect.Once.MethodCall(() => apiBridge.CommitTestCaseCode(Any <IAssertable> .Value.Matching(x => x != null).AsInterface));

            api.LuaEnv = luaEnv;
            ReadScript("./LuaScripts/EndTestCase.lua");
            LuaUtil.PublishObjectMethods(api, luaEnv);
            luaEnv.DoChunk(scriptChunk);

            AssertInvocationsWasMade.MatchingExpectationsFor(apiBridge);
        }
Пример #8
0
        public void StubDelegate()
        {
            var myDelegate = Stub.Delegate <MyDelegate>();

            myDelegate(1);
            myDelegate(2);
            myDelegate(3);

            AssertInvocationsWasMade.
            Exactly(3).ForMethodCall(() => myDelegate(Any <int> .Value));
        }
Пример #9
0
        public void NotMet()
        {
            var myObject = Mock.Interface <IMyObject>();

            Expect.Once.MethodCall(() => myObject.MyMethod(1));


            var ex = Assert.Throws <ExpectationsException>(() => AssertInvocationsWasMade.MatchingExpectationsFor(myObject));

            Assert.That(ex.Message, Is.StringStarting("All expectations has not been met, expected:"));
        }
Пример #10
0
        public void BeginTestCase_MakesTestharnessAvailableToScript()
        {
            var myHarness = new SimpleHarness();

            Expect.Once.MethodCall(() => apiBridge.BeginTestCase("SimpleHarness", "Mutagen.LuaFrontend.Test.dll"));
            Expect.Once.MethodCall(() => apiBridge.TestHarness()).Returns(myHarness);
            ReadScript("./LuaScripts/BeginTestCase_UseHarness.lua");
            LuaUtil.PublishObjectMethods(api, luaEnv);
            luaEnv.DoChunk(scriptChunk);
            AssertInvocationsWasMade.MatchingExpectationsFor(apiBridge);
            Assert.AreEqual(myHarness.lastPrint, "Test");
        }
Пример #11
0
        public void ForSingleMock()
        {
            var myObject = Mock.Interface <IMyObject>();

            Expect.Once.MethodCall(() => myObject.MyMethod(1));
            Expect.Once.MethodCall(() => myObject.MyMethod(2));

            myObject.MyMethod(1);
            myObject.MyMethod(2);

            AssertInvocationsWasMade.MatchingExpectationsFor(myObject);
        }
Пример #12
0
        public void ForStubInvocationAtLeastTwice()
        {
            var myObject = Stub.Interface <IMyObject>();

            myObject.MyMethod(1);
            myObject.MyMethod(1);
            myObject.MyMethod(2);

            AssertInvocationsWasMade.AtLeast(2).ForMethodCall(() => myObject.MyMethod(1));

            var ex = Assert.Throws <ExpectationsException>(() => AssertInvocationsWasMade.AtLeast(2).ForMethodCall(() => myObject.MyMethod(2)));

            Assert.That(ex.Message, Is.StringStarting("Wrong number of invocations for 'myObject.MyMethod(2)', expected 2..* actual 1:"));
        }
Пример #13
0
        public void ForScope()
        {
            var expectationScope = new ExpectationScope();

            var myObject1 = Mock.Interface <IMyObject>(expectationScope);
            var myObject2 = Mock.Interface <IMyObject>(expectationScope);

            Expect.Once.MethodCall(() => myObject1.MyMethod(1));
            Expect.Once.MethodCall(() => myObject2.MyMethod(2));

            myObject1.MyMethod(1);
            myObject2.MyMethod(2);

            AssertInvocationsWasMade.MatchingExpectationsFor(expectationScope);
        }
Пример #14
0
        public void ForStubInvocationBetweenOneAndTwoTimes()
        {
            var myObject = Stub.Interface <IMyObject>();

            myObject.MyMethod(1);
            myObject.MyMethod(1);
            myObject.MyMethod(2);
            myObject.MyMethod(3);
            myObject.MyMethod(3);
            myObject.MyMethod(3);

            AssertInvocationsWasMade.Between(1, 2).ForMethodCall(() => myObject.MyMethod(1));
            AssertInvocationsWasMade.Between(1, 2).ForMethodCall(() => myObject.MyMethod(2));

            var ex1 = Assert.Throws <ExpectationsException>(() => AssertInvocationsWasMade.Between(1, 2).ForMethodCall(() => myObject.MyMethod(3)));
            var ex2 = Assert.Throws <ExpectationsException>(() => AssertInvocationsWasMade.Between(1, 2).ForMethodCall(() => myObject.MyMethod(4)));

            Assert.That(ex1.Message, Is.StringStarting("Wrong number of invocations for 'myObject.MyMethod(3)', expected 1..2 actual 3:"));
            Assert.That(ex2.Message, Is.StringStarting("Wrong number of invocations for 'myObject.MyMethod(4)', expected 1..2 actual 0:"));
        }