예제 #1
0
 public void StashItEasyTests_GetTest_ConstructorSelection_WithAny_NonMockabe()
 {
     using (var mock = StashItEasy.Create())
     {
         Assert.Throws <NonMockableTypeException>(() =>
                                                  mock.GetWithConstructorArgs <TestObj>(StashArg.Any <IDep>(), StashArg.Any <IDep2>(), StashArg.Any <string>()));
     }
 }
예제 #2
0
 public void StashItEasyTests_GetTest_Strict_Fail()
 {
     using (var mock = StashItEasy.Create())
     {
         mock.Fake <IDep>(x => x.Strict());
         var m = mock.Get <TestObj>();
         Assert.Throws <ExpectationException>(() => m.Test());
     }
 }
예제 #3
0
        public void StashItEasyTests_Mock_WithArg()
        {
            using (var mock = StashItEasy.Create())
            {
                var arg = new DepArg();
                var m   = mock.Fake <DepWithArg>(x => x.WithArgumentsForConstructor(new[] { arg }));

                Assert.Same(arg, m.Dep);
            }
        }
예제 #4
0
        public void StashItEasyTests_GetTest_ConstructorSelection()
        {
            using (var mock = StashItEasy.Create())
            {
                var m    = A.Fake <IDep>();
                var test = mock.GetWithConstructorArgs <TestObj>(m);

                Assert.Same(m, test.Dep);
                Assert.Null(test.Dep2);
            }
        }
예제 #5
0
        public void StashItEasyTests_GetTest_ConstructorSelection_WithOverride_NonGeneric()
        {
            using (var mock = StashItEasy.Create())
            {
                var m    = A.Fake <IDep>();
                var test = mock.GetWithParamOverrides <TestObj>(m);

                Assert.Same(m, test.Dep);
                Assert.NotNull(test.Dep2);
            }
        }
예제 #6
0
        public void StashItEasyTests_GetTest_Loose()
        {
            using (var mock = StashItEasy.Create())
            {
                var f = mock.Fake <IDep>();
                var m = mock.Get <TestObj>();
                m.Test();
                m.Test1();

                A.CallTo(() => f.Test()).MustHaveHappened();
            }
        }
예제 #7
0
        public void StashItEasyTests_GetTest_GlobalStrict_Fail()
        {
            using (var mock = StashItEasy.Create(x => x.Strict()))
            {
                var f = mock.Fake <IDep>();
                mock.Fake <IDep2>();
                A.CallTo(() => f.Test()).DoesNothing();
                A.CallTo(() => f.Test2()).DoesNothing();

                var m = mock.Get <TestObj>();
                m.Test();
                Assert.Throws <ExpectationException>(() => m.Test1());
            }
        }
예제 #8
0
        public void StashItEasyTests_SameMock()
        {
            using (var mock = StashItEasy.Create())
            {
                var m1   = mock.Fake <IDep>();
                var m2   = mock.Fake <IDep>();
                var m3   = mock.Fake <IDep2>();
                var test = mock.Get <TestObj>();

                Assert.Same(m1, m2);
                Assert.Same(m1, test.Dep);
                Assert.Same(m3, test.Dep2);
            }
        }
예제 #9
0
        public void StashItEasyTests_GetTest_Strict()
        {
            using (var mock = StashItEasy.Create(x => x.Strict()))
            {
                var f1 = mock.Fake <IDep>();
                var f2 = mock.Fake <IDep2>();

                A.CallTo(() => f1.Test()).DoesNothing();
                A.CallTo(() => f1.Test2()).DoesNothing();
                A.CallTo(() => f2.Test1()).Returns(null);
                var m = mock.Get <TestObj>();
                m.Test();
                m.Test1();

                A.CallTo(() => f1.Test()).MustHaveHappened();
                A.CallTo(() => f1.Test2()).MustHaveHappened();
                A.CallTo(() => f2.Test1()).MustHaveHappened();
            }
        }