コード例 #1
0
        public static void ValidateParameterPassing(this MockService mockService, string httpMethod, object instance, string instancePath, OdcmMethod method, string serverMethodName, EntityArtifacts entityArtifacts)
        {
            var expectedMethodName = method.Name + "Async";

            var methodArguments = method.GetSampleArguments().ToArray();
            var uriArguments = method.UriParameters()
                .Select(p => methodArguments.First(a => a.Item1 == p.Name));
            var bodyArguments = method.BodyParameters()
                .Select(p => methodArguments.First(a => a.Item1 == p.Name));

            var responseBuilder = mockService
                .OnInvokeMethodRequest(httpMethod,
                    instancePath + "/" + serverMethodName,
                    uriArguments.ToTestReadableStringCollection(),
                    ArgumentOfTupleExtensions.ToJObject(bodyArguments));

            if (entityArtifacts == null)
                responseBuilder.RespondWith(r => r.Response.StatusCode = 200);
            else
                responseBuilder.RespondWithGetEntity(entityArtifacts.Class.GetDefaultEntitySetName(),
                    entityArtifacts.Class.GetSampleJObject());

            instance.InvokeMethod<Task>(expectedMethodName, methodArguments.Select(t => t.Item2).ToArray())
                .Wait();
        }