public void SetupGetAllowsProtectedPropertyGet()
        {
            var mock = new Mock <FooBase>();

            mock.Protected()
            .SetupGet <string>("ProtectedValue")
            .Returns("foo");

            Assert.Equal("foo", mock.Object.GetProtectedValue());
        }
        public void SetupResultAllowsProtectedMethodInBaseClass()
        {
            var mock = new Mock <FooDerived>();

            mock.Protected()
            .Setup <int>("ProtectedInt")
            .Returns(5);

            Assert.Equal(5, mock.Object.DoProtectedInt());
        }
Example #3
0
        public void DifferentArgumentsReturnDifferentValues()
        {
            var mock = new Mock <IFoo>();

            mock.Setup(x => x.Execute("ping")).Returns("ack");
            mock.Setup(x => x.Execute("send")).Returns("ok");

            Assert.Equal("ack", mock.Object.Execute("ping"));
            Assert.Equal("ok", mock.Object.Execute("send"));
        }
Example #4
0
        public void DifferentiatesCallWithNullArgument()
        {
            var mock = new Mock <IFoo>();

            mock.Setup(x => x.Execute(null)).Returns("null");
            mock.Setup(x => x.Execute("ping")).Returns("ack");

            Assert.Equal("null", mock.Object.Execute(null));
            Assert.Equal("ack", mock.Object.Execute("ping"));
        }
Example #5
0
        public void CallParameterCanBeMethodCall2()
        {
            // @mbrit - 2012-05-31 - test to try out the theory that it's boxing that's breaking this...
            string value = "5";
            var    mock  = new Mock <IFoo>();

            mock.Setup(x => x.EchoString(GetValue(value))).Returns(() => value + value);

            Assert.Equal(value + value, mock.Object.EchoString(value + value));
        }
Example #6
0
        public void DifferentMethodCallsReturnDifferentValues()
        {
            var mock = new Mock <IFoo>();

            mock.Setup(x => x.Execute("ping")).Returns("ack");
            mock.Setup(x => x.Execute("ping", "foo")).Returns("ack2");

            Assert.Equal("ack", mock.Object.Execute("ping"));
            Assert.Equal("ack2", mock.Object.Execute("ping", "foo"));
        }
Example #7
0
        public void DistinguishesSameMethodsWithDifferentGenericArguments()
        {
            var mock = new Mock <FooBase>();

            mock.Setup(foo => foo.Generic <int>()).Returns(2);
            mock.Setup(foo => foo.Generic <string>()).Returns(3);

            Assert.Equal(2, mock.Object.Generic <int>());
            Assert.Equal(3, mock.Object.Generic <string>());
        }
        public void IntermediateMethodInvocationAreSupported()
        {
            var mock = new Mock <IFoo>();

            mock.Setup(m => m.GetBar().Do("ping")).Returns("ack");

            var result = mock.Object.GetBar().Do("ping");

            Assert.Equal("ack", result);
        }
        public void IntermediateIndexerAccessIsSupported()
        {
            var mock = new Mock <IFoo>();

            mock.Setup(m => m[0].Do("ping")).Returns("ack");

            var result = mock.Object[0].Do("ping");

            Assert.Equal("ack", result);
        }
        public void SetupAllowsProtectedInternalResultMethod()
        {
            var mock = new Mock <FooBase>();

            mock.Protected()
            .Setup <int>("ProtectedInternalInt")
            .Returns(5);

            Assert.Equal(5, mock.Object.ProtectedInternalInt());
        }
        public void FailsIfArgumentException()
        {
            var mock = new Mock <IParent>();

            var prop = "";

            mock.Object.PropertyChanged += (sender, args) => prop = args.PropertyName;

            Assert.Throws <ArgumentException>(() => mock.Raise(x => x.PropertyChanged -= null, EventArgs.Empty));
        }
Example #12
0
        public void GetMockFromNonAddedInterfaceThrows()
        {
            var bag = new Mock <IBag>();

            bag.As <IFoo>();
            bag.As <IComparable>();
            object b = bag.Object;

            Assert.Throws <ArgumentException>(() => Mock.Get(b));
        }
        public void VerifiesHierarchyPropertyGetWithExpression()
        {
            var mock = new Mock <IFoo>();

            Assert.Throws <MockException>(() => mock.VerifyGet(m => m.Bar.Value));

            var value = mock.Object.Bar.Value;

            mock.VerifyGet(m => m.Bar.Value);
        }
        public void AsInterfaceVerifiesReturningMethodWithExpressionAndMessage()
        {
            var disposable = new Mock <IDisposable>();
            var mock       = disposable.As <IFoo>();

            var e = Assert.Throws <MockException>(
                () => mock.Verify(f => f.Execute("ping"), "Execute should have been invoked with 'ping'"));

            Assert.True(e.Message.Contains("Execute should have been invoked with 'ping'"));
            Assert.True(e.Message.Contains("f.Execute(\"ping\")"));
        }
        public void AtMostRangesBetweenZeroAndTimes()
        {
            var target = Times.AtMost(10);

            Assert.False(target.Verify(-1));
            Assert.True(target.Verify(0));
            Assert.True(target.Verify(6));
            Assert.True(target.Verify(10));
            Assert.False(target.Verify(11));
            Assert.False(target.Verify(int.MaxValue));
        }
        public void ExactlyCheckExactTimes()
        {
            var target = Times.Exactly(10);

            Assert.False(target.Verify(-1));
            Assert.False(target.Verify(0));
            Assert.False(target.Verify(9));
            Assert.True(target.Verify(10));
            Assert.False(target.Verify(11));
            Assert.False(target.Verify(int.MaxValue));
        }
Example #17
0
            public void ExpectsOnIndexer()
            {
                var mock = new Mock <ISomeInterface>();

                mock.Setup(m => m[0]).Returns("a");
                mock.Setup(m => m[1]).Returns("b");

                Assert.Equal("a", mock.Object[0]);
                Assert.Equal("b", mock.Object[1]);
                Assert.Equal(default(string), mock.Object[2]);
            }
Example #18
0
            public void ShouldReturnEnum()
            {
                var provider = new Mock <IMembershipService>();

                // For some reason, this particular lambda doesn't let me specify
                // a method return value for the method even though it returns a
                // MembershipCreateStatus enum
                provider.Setup(p => p.CreateUser(string.Empty, string.Empty, string.Empty)).Returns(MembershipCreateStatus.Invalid);

                Assert.Equal(MembershipCreateStatus.Invalid, provider.Object.CreateUser("", "", ""));
            }
Example #19
0
            public void FooTest()
            {
                // Setup
                var fooMock = new Mock <Foo>();

                fooMock.CallBase = true;
                fooMock.Setup(o => o.GetBar()).Returns(new Bar());
                var bar = ((IFoolery)fooMock.Object).DoStuffToBar();

                Assert.NotNull(bar);
            }
Example #20
0
        public void ReturnsIntPtr()
        {
            Mock <IFooPtr> mock = new Mock <IFooPtr>(MockBehavior.Strict);
            IntPtr         ret  = new IntPtr(3);

            mock.Setup(m => m.Get("a")).Returns(ret);

            IntPtr ret3 = mock.Object.Get("a");

            Assert.Equal(ret, mock.Object.Get("a"));
        }
Example #21
0
            public void ShouldRaiseEventOnInteropInterface()
            {
                var app   = new Mock <Microsoft.Office.Interop.Word.Application>();
                var count = 0;

                app.Object.DocumentOpen += doc => count++;

                app.Raise(x => x.DocumentOpen += null, new Mock <Microsoft.Office.Interop.Word.Document>().Object);

                Assert.Equal(1, count);
            }
Example #22
0
        public void ShouldCreateMocksWithFactoryDefaultValue()
        {
            var repository = new MockRepository(MockBehavior.Loose)
            {
                DefaultValue = DefaultValue.Mock
            };

            var mock = repository.Create <IFoo>();

            Assert.NotNull(mock.Object.Bar());
        }
        public void VerifiesSetterWithActionAndMatcher()
        {
            var mock = new Mock <IFoo>();

            Assert.Throws <MockException>(() => mock.VerifySet(m => m.Value = It.IsAny <int>()));
            mock.Object.Value = 2;

            mock.VerifySet(m => m.Value = It.IsAny <int>());
            mock.VerifySet(m => m.Value = It.IsInRange(1, 2, Range.Inclusive));
            mock.VerifySet(m => m.Value = It.Is <int>(i => i % 2 == 0));
        }
        public void AsInterfaceVerifiesPropertySetWithExpressionAndMessage()
        {
            var disposable = new Mock <IDisposable>();
            var mock       = disposable.As <IBar>();

            var e = Assert.Throws <MockException>(
                () => mock.VerifySet(f => f.Value = It.IsAny <int?>(), "Nobody called .Value"));

            Assert.True(e.Message.Contains("Nobody called .Value"));
            Assert.True(e.Message.Contains("f.Value"));
        }
        public void ThrowsIfVerifiableExpectationNotCalledWithMessage()
        {
            var mock = new Mock <IFoo>();

            mock.Setup(x => x.Submit()).Verifiable("Kaboom!");

            var mex = Assert.Throws <MockVerificationException>(() => mock.Verify());

            Assert.Contains("Kaboom!", mex.Message);
            Assert.Equal(MockException.ExceptionReason.VerificationFailed, mex.Reason);
        }
        public void ShouldExpectAddGenericHandler()
        {
            var view      = new Mock <IFooView>();
            var presenter = new FooPresenter(view.Object);

            Assert.False(presenter.Canceled);

            view.Raise(v => v.Canceled += null, EventArgs.Empty);

            Assert.True(presenter.Canceled);
        }
        public void VerifiesOutWithExpression()
        {
            var mock     = new Mock <IFoo>();
            var expected = "ping";

            Assert.Throws <MockException>(() => mock.Verify(m => m.EchoOut(out expected)));

            mock.Object.EchoOut(out expected);

            mock.Verify(m => m.EchoOut(out expected));
        }
        public void ShouldAllowFluentOnReadOnlyGetterProperty()
        {
            var target = Mock.Of <IFoo>(x => x.Bars == new[]
            {
                Mock.Of <IBar>(b => b.Id == "1"),
                Mock.Of <IBar>(b => b.Id == "2"),
            });

            Assert.NotNull(Mock.Get(target));
            Assert.Equal(2, target.Bars.Count());
        }
        public void ReturnsMockDefaultValueForLooseBehaviorOnInterface()
        {
            var mock = new Mock <IFoo>(MockBehavior.Loose)
            {
                DefaultValue = DefaultValue.Mock
            };

            var value = mock.Object.GetObject();

            Assert.True(value is IMocked);
        }
Example #30
0
            public void Test()
            {
                var mock = new Mock <IDisposable>().As <IComponent>();

                mock.SetupAllProperties();

                ISite site = new FooSite();

                mock.Object.Site = site;
                Assert.Same(site, mock.Object.Site);
            }