Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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)));
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
                }
            }
        }
Exemplo n.º 5
0
        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);
                }
            }
        }