protected internal MethodMockBuilder MockMethod(string name, IEnumerable<Type> genericArgs, IEnumerable<object> args) { var settings = MockSettings.Next(); var method = new MethodMockBuilder(settings, new MockBuilder(settings, TestSettings), genericArgs, args); MockMethod(name, method); return method; }
public void Invoke_Void_NoValidMock_Strict() { // arrange var arg = new object(); var method = new MethodMockBuilder(null, new[] { Dx.Args<object>(a => { Assert.AreEqual(a, arg); return false; }) }); var values = new MockBuilder(); ((dynamic)values).abc = new MethodGroup(method); var subject = new ObjectBase(DxSettings.GlobalSettings, values, true); // act // assert Assert.Throws(typeof(InvalidMockException), () => subject.Invoke("abc", new[] { new MethodArg<object>(arg, string.Empty) })); }
public void Invoke_NonVoid_VoidMethod_RefType() { // arrange var ok = false; var arg = new object(); var method = new MethodMockBuilder(null, new[] { Dx.Args<object>(a => { ok = true; return true; }) }); var values = new MockBuilder(); ((dynamic)values).abc = new MethodGroup(method); var subject = new ObjectBase(DxSettings.GlobalSettings, values); // act // assert var output = subject.Invoke<int>("abc", new[] { new MethodArg<object>(arg, string.Empty) }); Assert.AreEqual(output, 0); Assert.IsTrue(ok); }
public void Invoke_Void_NoValidMock_NonStrict() { // arrange var ok = false; var arg = new object(); var method = new MethodMockBuilder(null, new[] { Dx.Args<object>(a => { ok = true; Assert.AreEqual(a, arg); return false; }) }); var values = new MockBuilder(); ((dynamic)values).abc = new MethodGroup(method); var subject = new ObjectBase(DxSettings.GlobalSettings, values); // act // assert subject.Invoke("abc", new[] { new MethodArg<object>(arg, string.Empty) }); Assert.IsTrue(ok); }
public void Invoke_NonVoid_Null() { // arrange var ok = false; var arg = new object(); object returnVal = null; var method = new MethodMockBuilder(null, new[] { Dx.Args<object>(a => { ok = true; return a == arg; }) }); (method as dynamic).DxReturns(returnVal); var values = new MockBuilder(); ((dynamic)values).abc = new MethodGroup(method); var subject = new ObjectBase(DxSettings.GlobalSettings, values); // act // assert var output = subject.Invoke<object>("abc", new[] { new MethodArg<object>(arg, string.Empty) }); Assert.AreEqual(returnVal, output); Assert.IsTrue(ok); }