Пример #1
0
        public async Task ParseQueryForArray()
        {
            var queryIds = Enumerable.Range(0, 10).Select(i => Guid.NewGuid()).ToArray();
            var query    = new ExampleQuery()
            {
                Id = queryIds
            };

            bool ran = false;
            Func <Guid, Task <HttpResponseMessage> > assert =
                (id) =>
            {
                Assert.Fail();
                return(default(HttpResponseMessage).ToTask());
            };
            Func <Guid[], Task <HttpResponseMessage[]> > assertMulti =
                (ids) =>
            {
                Assert.AreEqual(queryIds.Length, ids.Length);
                ran = true;
                return(default(HttpResponseMessage[]).ToTask());
            };

            var request = new HttpRequestMessage(HttpMethod.Get, "http://example.com/foo/" + queryIds.Select(id => id.ToString())
                                                 .Join(","));

            request.SetConfiguration(new System.Web.Http.HttpConfiguration());
            await query.ParseAsync(request,
                                   (q) => assert(q.Id.ParamSingle()),
                                   (q) => assert(q.AssociatedId.ParamSingle()),
                                   (q) => assertMulti(q.Id.ParamOr()));

            Assert.IsTrue(ran);
        }
Пример #2
0
        public async Task ParseQueryForAssociatedId()
        {
            var queryId = Guid.NewGuid();
            var query   = new ExampleQuery()
            {
                AssociatedId = queryId
            };

            bool ran = false;
            Func <Guid, Task <HttpResponseMessage> > assert =
                (id) =>
            {
                Assert.AreEqual(queryId, id);
                ran = true;
                return(default(HttpResponseMessage).ToTask());
            };

            var request = new HttpRequestMessage(HttpMethod.Get, "http://example.com/foo?associated_id=" + queryId.ToString());

            request.SetConfiguration(new System.Web.Http.HttpConfiguration());
            await query.ParseAsync(request,
                                   (q) => assert(q.Id.ParamSingle()),
                                   (q) => assert(q.AssociatedId.ParamSingle()));

            Assert.IsTrue(ran);
        }