本文整理汇总了C#中Microsoft.WindowsAzure.MobileServices.Test.TestHttpHandler.AddResponseContent方法的典型用法代码示例。如果您正苦于以下问题:C# TestHttpHandler.AddResponseContent方法的具体用法?C# TestHttpHandler.AddResponseContent怎么用?C# TestHttpHandler.AddResponseContent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.WindowsAzure.MobileServices.Test.TestHttpHandler
的用法示例。
在下文中一共展示了TestHttpHandler.AddResponseContent方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PushAsync_ExecutesThePendingOperations_InOrder
public async Task PushAsync_ExecutesThePendingOperations_InOrder()
{
var hijack = new TestHttpHandler();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
var store = new MobileServiceLocalStoreMock();
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
JObject item1 = new JObject() { { "id", "abc" } }, item2 = new JObject() { { "id", "def" } };
await table.InsertAsync(item1);
await table.InsertAsync(item2);
Assert.AreEqual(hijack.Requests.Count, 0);
// create a new service to test that operations are loaded from store
hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
hijack.AddResponseContent("{\"id\":\"def\",\"String\":\"What\"}");
service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
Assert.AreEqual(hijack.Requests.Count, 0);
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests.Count, 2);
Assert.AreEqual(hijack.RequestContents[0], item1.ToString(Formatting.None));
Assert.AreEqual(hijack.Requests[0].Headers.GetValues("X-ZUMO-FEATURES").First(), "TU,OL");
Assert.AreEqual(hijack.RequestContents[1], item2.ToString(Formatting.None));
Assert.AreEqual(hijack.Requests[1].Headers.GetValues("X-ZUMO-FEATURES").First(), "TU,OL");
// create yet another service to make sure the old items were purged from queue
hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
Assert.AreEqual(hijack.Requests.Count, 0);
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests.Count, 0);
}
示例2: PullAsync_Supports_AbsoluteAndRelativeUri
public async Task PullAsync_Supports_AbsoluteAndRelativeUri()
{
var data = new[]
{
new
{
ServiceUri = MobileAppUriValidator.DummyMobileApp,
QueryUri = MobileAppUriValidator.DummyMobileApp + "api/todoitem",
Result = MobileAppUriValidator.DummyMobileApp + "api/todoitem"
},
new
{
ServiceUri = MobileAppUriValidator.DummyMobileAppWithoutTralingSlash,
QueryUri = "/api/todoitem",
Result = MobileAppUriValidator.DummyMobileAppWithoutTralingSlash + "/api/todoitem"
},
new
{
ServiceUri = MobileAppUriValidator.DummyMobileAppUriWithFolder,
QueryUri = MobileAppUriValidator.DummyMobileAppUriWithFolder + "api/todoitem",
Result = MobileAppUriValidator.DummyMobileAppUriWithFolder + "api/todoitem"
},
new
{
ServiceUri = MobileAppUriValidator.DummyMobileAppUriWithFolderWithoutTralingSlash,
QueryUri = "/api/todoitem",
Result = MobileAppUriValidator.DummyMobileAppUriWithFolderWithoutTralingSlash + "/api/todoitem"
}
};
foreach (var item in data)
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("[{\"id\":\"abc\",\"String\":\"Hey\"},{\"id\":\"def\",\"String\":\"How\"}]"); // first page
hijack.AddResponseContent("[]");
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient(item.ServiceUri, hijack);
MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
Assert.IsFalse(store.TableMap.ContainsKey("stringId_test_table"));
await table.PullAsync(null, item.QueryUri);
Assert.AreEqual(store.TableMap["stringId_test_table"].Count, 2);
AssertEx.MatchUris(hijack.Requests, item.Result + "?$skip=0&$top=50&__includeDeleted=true",
item.Result + "?$skip=2&$top=50&__includeDeleted=true");
Assert.AreEqual("QS,OL", hijack.Requests[0].Headers.GetValues("X-ZUMO-FEATURES").First());
Assert.AreEqual("QS,OL", hijack.Requests[1].Headers.GetValues("X-ZUMO-FEATURES").First());
}
}
开发者ID:brettsam,项目名称:azure-mobile-apps-net-client,代码行数:56,代码来源:MobileServiceSyncTable.Generic.Test.cs
示例3: PushAsync_DoesNotRunHandler_WhenTableTypeIsNotTable
public async Task PushAsync_DoesNotRunHandler_WhenTableTypeIsNotTable()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"version\":\"Hey\"}");
bool invoked = false;
var handler = new MobileServiceSyncHandlerMock();
handler.TableOperationAction = op =>
{
invoked = true;
throw new InvalidOperationException();
};
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), handler);
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
await table.InsertAsync(new JObject() { { "id", "abc" }, { "version", "Wow" } });
await (service.SyncContext as MobileServiceSyncContext).PushAsync(CancellationToken.None, (MobileServiceTableKind)1);
Assert.IsFalse(invoked);
}
示例4: TestIncrementalPull
private static async Task TestIncrementalPull(MobileServiceLocalStoreMock store, MobileServiceRemoteTableOptions options, params string[] expectedUris)
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent(@"[{""id"":""abc"",""String"":""Hey"", ""__updatedAt"": ""2001-02-03T00:00:00.0000000+00:00""},
{""id"":""def"",""String"":""World"", ""__updatedAt"": ""2001-02-03T00:03:00.0000000+07:00""}]"); // for pull
hijack.AddResponseContent(@"[]");
store.TableMap[MobileServiceLocalSystemTables.Config]["systemProperties|stringId_test_table"] = new JObject
{
{ MobileServiceSystemColumns.Id, "systemProperties|stringId_test_table" },
{ "value", "1" }
};
IMobileServiceClient service = new MobileServiceClient("http://test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
table.SupportedOptions = options;
var query = table.Where(t => t.String == "world")
.WithParameters(new Dictionary<string, string>() { { "param1", "val1" } })
.IncludeTotalCount();
await table.PullAsync("incquery", query, cancellationToken: CancellationToken.None);
AssertEx.MatchUris(hijack.Requests, expectedUris);
}
示例5: PullAsync_DoesNotPurge_WhenItemIsMissing
public async Task PullAsync_DoesNotPurge_WhenItemIsMissing()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}"); // for insert
hijack.AddResponseContent("[{\"id\":\"def\",\"String\":\"World\"}]"); // remote item
hijack.AddResponseContent("[]"); // last page
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
await table.InsertAsync(new JObject() { { "id", "abc" } }); // insert an item
await service.SyncContext.PushAsync(); // push to clear the queue
// now pull
await table.PullAsync(null, null);
Assert.AreEqual(store.TableMap[table.TableName].Count, 2); // 1 from remote and 1 from local
Assert.AreEqual(hijack.Requests.Count, 3); // one for push and 2 for pull
}
示例6: PullAsync_DefaultsTo50_IfGreaterThan50
public async Task PullAsync_DefaultsTo50_IfGreaterThan50()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("[{\"id\":\"abc\",\"String\":\"Hey\"},{\"id\":\"def\",\"String\":\"How\"}]"); // first page
hijack.AddResponseContent("[]"); // end of the list
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
Assert.IsFalse(store.TableMap.ContainsKey("stringId_test_table"));
await table.PullAsync(null, table.Take(51));
Assert.AreEqual(store.TableMap["stringId_test_table"].Count, 2);
AssertEx.MatchUris(hijack.Requests, "http://www.test.com/tables/stringId_test_table?$skip=0&$top=50&__includeDeleted=true&__systemproperties=__version%2C__deleted",
"http://www.test.com/tables/stringId_test_table?$skip=2&$top=49&__includeDeleted=true&__systemproperties=__version%2C__deleted");
}
示例7: PullAsync_Succeeds
public async Task PullAsync_Succeeds()
{
var hijack = new TestHttpHandler();
hijack.OnSendingRequest = req =>
{
return Task.FromResult(req);
};
hijack.AddResponseContent("[{\"id\":\"abc\",\"String\":\"Hey\"},{\"id\":\"def\",\"String\":\"World\"}]"); // for pull
hijack.AddResponseContent("[]"); // last page
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
var query = table.Skip(5)
.Take(3)
.Where(t => t.String == "world")
.OrderBy(o => o.Id)
.WithParameters(new Dictionary<string, string>() { { "param1", "val1" } })
.OrderByDescending(o => o.String)
.IncludeTotalCount();
await table.PullAsync(null, query, cancellationToken: CancellationToken.None);
Assert.AreEqual(hijack.Requests.Count, 2);
AssertEx.QueryEquals(hijack.Requests[0].RequestUri.Query, "?$filter=(String%20eq%20'world')&$orderby=String%20desc,id&$skip=5&$top=3¶m1=val1&__includeDeleted=true&__systemproperties=__version%2C__deleted");
}
示例8: PullAsync_Incremental_PageSize
public async Task PullAsync_Incremental_PageSize()
{
var hijack = new TestHttpHandler();
hijack.OnSendingRequest = req =>
{
return Task.FromResult(req);
};
hijack.AddResponseContent(@"[{""id"":""abc"",""String"":""Hey""}]");
hijack.AddResponseContent("[]"); // last page
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
PullOptions pullOptions = new PullOptions
{
MaxPageSize = 10
};
await table.PullAsync("items", table.CreateQuery(), pullOptions: pullOptions);
AssertEx.MatchUris(hijack.Requests,
string.Format("http://www.test.com/tables/stringId_test_table?$filter=(__updatedAt ge datetimeoffset'1970-01-01T00:00:00.0000000%2B00:00')&$orderby=__updatedAt&$skip=0&$top={0}&__includeDeleted=true&__systemproperties=__updatedAt%2C__version%2C__deleted", pullOptions.MaxPageSize),
string.Format("http://www.test.com/tables/stringId_test_table?$filter=(__updatedAt ge datetimeoffset'1970-01-01T00:00:00.0000000%2B00:00')&$orderby=__updatedAt&$skip=1&$top={0}&__includeDeleted=true&__systemproperties=__updatedAt%2C__version%2C__deleted", pullOptions.MaxPageSize));
}
示例9: PushAsync_FeatureHeaderPresent
public async Task PushAsync_FeatureHeaderPresent()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
var store = new MobileServiceLocalStoreMock();
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
JObject item1 = new JObject() { { "id", "abc" } };
await table.InsertAsync(item1);
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests[0].Headers.GetValues("X-ZUMO-FEATURES").First(), "TU,OL");
}
示例10: PullAsync_Incremental_MovesByUpdatedAt_ThenUsesSkipAndTop_WhenUpdatedAtDoesNotChange
public async Task PullAsync_Incremental_MovesByUpdatedAt_ThenUsesSkipAndTop_WhenUpdatedAtDoesNotChange()
{
var hijack = new TestHttpHandler();
hijack.OnSendingRequest = req =>
{
return Task.FromResult(req);
};
hijack.AddResponseContent(@"[{""id"":""abc"",""String"":""Hey"", ""updatedAt"": ""2001-02-03T00:00:00.0000000+00:00""}]");
hijack.AddResponseContent(@"[{""id"":""def"",""String"":""World"", ""updatedAt"": ""2001-02-03T00:00:00.0000000+00:00""}]");
hijack.AddResponseContent("[]"); // last page
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
await table.PullAsync("items", table.CreateQuery());
AssertEx.MatchUris(hijack.Requests,
mobileAppUriValidator.GetTableUri("stringId_test_table?$filter=(updatedAt ge datetimeoffset'1970-01-01T00:00:00.0000000%2B00:00')&$orderby=updatedAt&$skip=0&$top=50&__includeDeleted=true"),
mobileAppUriValidator.GetTableUri("stringId_test_table?$filter=(updatedAt ge datetimeoffset'2001-02-03T00:00:00.0000000%2B00:00')&$orderby=updatedAt&$skip=0&$top=50&__includeDeleted=true"),
mobileAppUriValidator.GetTableUri("stringId_test_table?$filter=(updatedAt ge datetimeoffset'2001-02-03T00:00:00.0000000%2B00:00')&$orderby=updatedAt&$skip=1&$top=50&__includeDeleted=true"));
}
开发者ID:brettsam,项目名称:azure-mobile-apps-net-client,代码行数:24,代码来源:MobileServiceSyncTable.Generic.Test.cs
示例11: TestIncrementalPull
private static async Task TestIncrementalPull(MobileServiceLocalStoreMock store, MobileServiceRemoteTableOptions options, params string[] expectedTableUriComponents)
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent(@"[{""id"":""abc"",""String"":""Hey"", ""updatedAt"": ""2001-02-03T00:00:00.0000000+00:00""},
{""id"":""def"",""String"":""World"", ""updatedAt"": ""2001-02-03T00:03:00.0000000+07:00""}]"); // for pull
hijack.AddResponseContent(@"[]");
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
table.SupportedOptions = options;
var query = table.Where(t => t.String == "world")
.WithParameters(new Dictionary<string, string>() { { "param1", "val1" } })
.IncludeTotalCount();
await table.PullAsync("incquery", query, cancellationToken: CancellationToken.None);
var expectedTableUris =
expectedTableUriComponents.Select(
expectedTableUriComponent => mobileAppUriValidator.GetTableUri(expectedTableUriComponent)).ToArray();
AssertEx.MatchUris(hijack.Requests, expectedTableUris);
}
开发者ID:brettsam,项目名称:azure-mobile-apps-net-client,代码行数:25,代码来源:MobileServiceSyncTable.Generic.Test.cs
示例12: PullAsync_DoesNotFollowLink_IfMaxRecordsAreRetrieved
public async Task PullAsync_DoesNotFollowLink_IfMaxRecordsAreRetrieved()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("[{\"id\":\"abc\",\"String\":\"Hey\"},{\"id\":\"def\",\"String\":\"How\"}]"); // first page
hijack.Responses[0].Headers.Add("Link", "http://localhost:31475/tables/Green?$top=1&$select=Text%2CDone%2CId&$skip=2; rel=next");
hijack.AddResponseContent("[{\"id\":\"ghi\",\"String\":\"Are\"},{\"id\":\"jkl\",\"String\":\"You\"}]"); // second page
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
Assert.IsFalse(store.TableMap.ContainsKey("stringId_test_table"));
await table.PullAsync(null, table.Take(1));
Assert.AreEqual(store.TableMap["stringId_test_table"].Count, 1);
}
开发者ID:brettsam,项目名称:azure-mobile-apps-net-client,代码行数:19,代码来源:MobileServiceSyncTable.Generic.Test.cs
示例13: PullAsync_DefaultsTo50_IfGreaterThanMaxPageSize
public async Task PullAsync_DefaultsTo50_IfGreaterThanMaxPageSize()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("[{\"id\":\"abc\",\"String\":\"Hey\"},{\"id\":\"def\",\"String\":\"How\"}]"); // first page
hijack.AddResponseContent("[]"); // end of the list
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
Assert.IsFalse(store.TableMap.ContainsKey("stringId_test_table"));
var pullOptions = new PullOptions
{
MaxPageSize = 50,
};
await table.PullAsync(null, table.Take(51), pullOptions);
Assert.AreEqual(store.TableMap["stringId_test_table"].Count, 2);
AssertEx.MatchUris(hijack.Requests, mobileAppUriValidator.GetTableUri("stringId_test_table?$skip=0&$top=50&__includeDeleted=true"),
mobileAppUriValidator.GetTableUri("stringId_test_table?$skip=2&$top=49&__includeDeleted=true"));
}
开发者ID:brettsam,项目名称:azure-mobile-apps-net-client,代码行数:26,代码来源:MobileServiceSyncTable.Generic.Test.cs
示例14: PullAsync_DoesNotFollowLink_IfRelationIsNotNext
public async Task PullAsync_DoesNotFollowLink_IfRelationIsNotNext()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("[{\"id\":\"abc\",\"String\":\"Hey\"},{\"id\":\"def\",\"String\":\"How\"}]"); // first page
hijack.Responses[0].Headers.Add("Link", "http://contoso.com:31475/tables/Green?$top=1&$select=Text%2CDone%2CId&$skip=2; rel=prev");
hijack.AddResponseContent("[{\"id\":\"ghi\",\"String\":\"Are\"},{\"id\":\"jkl\",\"String\":\"You\"}]"); // second page
hijack.AddResponseContent("[]"); // end of the list
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
Assert.IsFalse(store.TableMap.ContainsKey("stringId_test_table"));
await table.PullAsync(null, null);
Assert.AreEqual(store.TableMap["stringId_test_table"].Count, 4);
AssertEx.MatchUris(hijack.Requests, mobileAppUriValidator.GetTableUri("stringId_test_table?$skip=0&$top=50&__includeDeleted=true"),
mobileAppUriValidator.GetTableUri("stringId_test_table?$skip=2&$top=50&__includeDeleted=true"),
mobileAppUriValidator.GetTableUri("stringId_test_table?$skip=4&$top=50&__includeDeleted=true"));
}
开发者ID:brettsam,项目名称:azure-mobile-apps-net-client,代码行数:25,代码来源:MobileServiceSyncTable.Generic.Test.cs
示例15: PullAsync_Supports_AbsoluteAndRelativeUri
public async Task PullAsync_Supports_AbsoluteAndRelativeUri()
{
var data = new string[]
{
"http://www.test.com/api/todoitem",
"/api/todoitem"
};
foreach (string uri in data)
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("[{\"id\":\"abc\",\"String\":\"Hey\"},{\"id\":\"def\",\"String\":\"How\"}]"); // first page
hijack.AddResponseContent("[]");
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
Assert.IsFalse(store.TableMap.ContainsKey("stringId_test_table"));
await table.PullAsync(null, uri);
Assert.AreEqual(store.TableMap["stringId_test_table"].Count, 2);
AssertEx.MatchUris(hijack.Requests, "http://www.test.com/api/todoitem?$skip=0&$top=50&__includeDeleted=true&__systemproperties=__version%2C__deleted",
"http://www.test.com/api/todoitem?$skip=2&$top=50&__includeDeleted=true&__systemproperties=__version%2C__deleted");
Assert.AreEqual("QS,OL", hijack.Requests[0].Headers.GetValues("X-ZUMO-FEATURES").First());
Assert.AreEqual("QS,OL", hijack.Requests[1].Headers.GetValues("X-ZUMO-FEATURES").First());
}
}