public void Can_call_method_with_multiple_parameters() { _mock.Setup(x => x.MultipleParams(20, 100)); var del = (Net.Internal.CodeGen.CodeGen.InvokeMethodDelegate)BuildInvokeMethodDelegate(nameof(TestObject.MultipleParams)); using (var netReference = NetReference.CreateForObject(_mock.Object)) { Task task = null; del(netReference, NetVariantList.From(NetVariant.From(20), NetVariant.From <long>(100)), null, ref task); _mock.Verify(x => x.MultipleParams(20, 100)); } }
public void Can_use_default_values_when_no_parameters_given() { _mock.Setup(x => x.MultipleParams(default(int), default(long))); var del = (Net.Internal.CodeGen.CodeGen.InvokeMethodDelegate)BuildInvokeMethodDelegate(nameof(TestObject.MultipleParams)); using (var netReference = NetReference.CreateForObject(_mock.Object)) { Task task = null; del(netReference, NetVariantList.From(), null, ref task); _mock.Verify(x => x.MultipleParams(default(int), default(long))); } }
public void Can_get_instance_of_task_if_return_type_task() { var del = (Net.Internal.CodeGen.CodeGen.InvokeMethodDelegate)BuildInvokeMethodDelegate(nameof(TestObject.ReturnTypeTask)); var task = Task.CompletedTask; _mock.Setup(x => x.ReturnTypeTask()).Returns(task); Task outputTask = null; del(NetReference.CreateForObject(_mock.Object), NetVariantList.From(), new NetVariant(), ref outputTask); outputTask.Should().Be(task); }
private void Test <TResult>(Expression <Action <TestObject> > expression, TResult value) { _mock.Reset(); _mock.Setup(expression); var del = (Net.Internal.CodeGen.CodeGen.InvokeMethodDelegate)BuildInvokeMethodDelegate(((MethodCallExpression)expression.Body).Method.Name); using (var netReference = NetReference.CreateForObject(_mock.Object)) { using (var result = new NetVariant()) { Task task = null; del(netReference, NetVariantList.From(NetVariant.From(value)), result, ref task); _mock.Verify(expression, Times.Once); } } }
public void Can_use_multiple_parameters_with_return_type() { _mock.Setup(x => x.MultipleParamsWithReturn(20, 30)).Returns(40); var del = (Net.Internal.CodeGen.CodeGen.InvokeMethodDelegate)BuildInvokeMethodDelegate(nameof(TestObject.MultipleParamsWithReturn)); using (var netReference = NetReference.CreateForObject(_mock.Object)) { using (var result = new NetVariant()) { Task task = null; del(netReference, NetVariantList.From(NetVariant.From <int>(20), NetVariant.From <long>(30)), result, ref task); _mock.Verify(x => x.MultipleParamsWithReturn(20, 30), Times.Once); result.VariantType.Should().Be(NetVariantType.Int); result.Int.Should().Be(40); } } }