public void MockOfMockedClassWithCtorShouldReturnSame() { Mock <FooWithCtor> mock = new Mock <FooWithCtor>(5); IMocked <FooWithCtor> mocked = mock.Object as IMocked <FooWithCtor>; Assert.Same(mock, mocked.Mock); }
public Mock <T> Mock <T>() where T : class { IMocked <T> obj = (IMocked <T>)Resolve <T>(); return(obj.Mock); }
public void MockOfMockedInterfaceShouldReturnSame() { Mock <IFoo> mock = new Mock <IFoo>(); IMocked <IFoo> mocked = mock.Object as IMocked <IFoo>; Assert.Same(mock, mocked.Mock); }
public void MockOfMockedClassShouldReturnSame() { Mock <Foo> mock = new Mock <Foo>(); IMocked <Foo> mocked = mock.Object as IMocked <Foo>; Assert.Same(mock, mocked.Mock); }
/// <summary> /// Clears any existing behavior (including any setups) and /// adds the necessary behaviors to the <paramref name="mocked"/> so /// that it behaves as specified by the <paramref name="behavior"/> /// enumeration. /// </summary> /// <remarks> /// This method can be used by custom mocks to ensure they have the /// same default behaviors as a mock created using <c>Mock.Of{T}</c>. /// </remarks> public static void SetBehavior(this IMocked mocked, MockBehavior behavior) { mocked.Mock.Behaviors.Clear(); mocked.Mock.Behaviors.Add(new MockTrackingBehavior()); mocked.Mock.Behaviors.Add(new EventBehavior()); mocked.Mock.Behaviors.Add(new PropertyBehavior { SetterRequiresSetup = behavior == MockBehavior.Strict }); mocked.Mock.Behaviors.Add(new DefaultEqualityBehavior()); mocked.Mock.Behaviors.Add(new RecursiveMockBehavior()); if (behavior == MockBehavior.Strict) { mocked.Mock.Behaviors.Add(new StrictMockBehavior()); } else { mocked.Mock.Behaviors.Add(new DefaultValueBehavior()); } mocked.Mock.State.Set(behavior); // Saves the initial set of behaviors, which allows resetting the mock. mocked.Mock.State.Set(mocked.Mock.Behaviors.ToArray()); }
/// <summary> /// Clears any existing behavior (including any setups) and /// adds the necessary behaviors to the <paramref name="mocked"/> so /// that it behaves as specified by the <paramref name="behavior"/> /// enumeration. /// </summary> /// <remarks> /// This method can be used by custom mocks to ensure they have the /// same default behaviors as a mock created using <c>Mock.Of{T}</c>. /// </remarks> public static void Initialize(this IMocked mocked, MockBehavior behavior = MockBehavior.Loose) { var mock = mocked.Mock; mock.Behaviors.Clear(); mocked.AsMoq().Behavior = behavior; mock.Behaviors.Add(new SetupScopeBehavior()); mock.Behaviors.Add(new MockContextBehavior()); mock.Behaviors.Add(new ConfigurePipelineBehavior()); mock.Behaviors.Add(new MockRecordingBehavior()); mock.Behaviors.Add(new EventBehavior()); mock.Behaviors.Add(new PropertyBehavior { SetterRequiresSetup = behavior == MockBehavior.Strict }); mock.Behaviors.Add(new DefaultEqualityBehavior()); mock.Behaviors.Add(new RecursiveMockBehavior()); mock.Behaviors.Add(new CallBaseBehavior()); // Dynamically configured by the ConfigurePipelineBehavior. mock.Behaviors.Add(new StrictMockBehavior()); var defaultValue = mock.State.GetOrAdd(() => new DefaultValueProvider()); mock.Behaviors.Add(new DefaultValueBehavior(defaultValue)); mock.State.Set(defaultValue); }
public DependencyContainer(object obj) { Obj = obj switch { null => throw new ArgumentNullException(nameof(obj)), IMocked mocked => mocked.Mock, // unpack the mocked object to a mock object o => o, }; }
/// <summary> /// Inserts a behavior into the mock behavior pipeline at the specified /// index. /// </summary> public static IMocked InsertBehavior(this IMocked mock, int index, Func <IMethodInvocation, bool> appliesTo, InvokeBehavior behavior, string name = null) { mock.Mock.Behaviors.Insert(index, MockBehavior.Create(appliesTo, behavior, name)); return(mock); }
/// <summary> /// Adds a behavior to a mock. /// </summary> public static IMocked AddBehavior(this IMocked mock, Func <IMethodInvocation, bool> appliesTo, InvokeBehavior behavior, string name = null) { mock.Mock.Behaviors.Add(MockBehavior.Create(appliesTo, behavior, name)); return(mock); }
public static MockBehavior?GetBehavior(this IMocked mocked) => mocked.Mock.State.TryGetValue <MockBehavior>(out var behavior) ? behavior : (MockBehavior?)null;
/// <summary> /// Inserts a behavior into the mock behavior pipeline at the specified /// index. /// </summary> public static IMocked InsertBehavior(this IMocked mock, int index, InvokeBehavior behavior, string name = null) { mock.Mock.BehaviorFor(MockSetup.Current).Behaviors.Insert(index, new InvocationBehavior(behavior, name)); return(mock); }
/// <summary> /// Adds a behavior to a mock. /// </summary> public static IMocked AddBehavior(this IMocked mock, InvokeBehavior behavior, string name = null) { mock.Mock.BehaviorFor(MockSetup.Current).Behaviors.Add(new InvocationBehavior(behavior, name)); return(mock); }
public void MethodMocked(IMocked mocked) { mocked.Do(); }
/// <summary> /// Inserts a behavior into the mock behavior pipeline at the specified /// index. /// </summary> public static void InsertMockBehavior(this IMocked mock, int index, Func <IMethodInvocation, bool> appliesTo, InvokeBehavior behavior) { mock.Mock.Behaviors.Insert(index, MockBehavior.Create(appliesTo, behavior)); }
/// <summary> /// Adds a behavior to a mock. /// </summary> public static void AddMockBehavior(this IMocked mock, Func <IMethodInvocation, bool> appliesTo, InvokeBehavior behavior) { mock.Mock.Behaviors.Add(MockBehavior.Create(appliesTo, behavior)); }