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); }
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); }