예제 #1
0
        public void TrackMockBehaviors()
        {
            var stunt = new FakeStunt();

            // Forces initialization of the default mock.
            Assert.NotNull(stunt.Mock);

            var setup = new MockSetup(
                new MethodInvocation(stunt, typeof(FakeStunt).GetMethod("Do")),
                Array.Empty <IArgumentMatcher>());

            var initialBehaviors = stunt.Behaviors.Count;
            var behavior         = new MockBehaviorPipeline(setup);

            stunt.AddBehavior(behavior);
            stunt.AddBehavior(new DelegateStuntBehavior((m, n) => n().Invoke(m, n)));
            Assert.Equal(initialBehaviors + 2, stunt.Behaviors.Count);

            Assert.Single(stunt.Mock.Setups);
            Assert.Same(behavior, stunt.Mock.GetPipeline(setup));

            stunt.Behaviors.Remove(behavior);

            Assert.Equal(initialBehaviors + 1, stunt.Behaviors.Count);
            Assert.Empty(stunt.Mock.Setups);
        }
예제 #2
0
        public void AddPipelineForSetupIfMissing()
        {
            var stunt = new FakeStunt();
            var setup = new MockSetup(
                new MethodInvocation(stunt, typeof(FakeStunt).GetMethod("Do")),
                Array.Empty <IArgumentMatcher>());

            var behavior = stunt.Mock.GetPipeline(setup);

            Assert.NotNull(behavior);
            Assert.Equal(2, stunt.Behaviors.Count);
            Assert.Single(stunt.Mock.Setups);
        }
예제 #3
0
        public void TracksTargetObject()
        {
            var stunt = new FakeStunt();

            Assert.Same(stunt, stunt.Mock.Object);
        }