public void CSOMRequest_Test_ListItemsQueryDeserialization() { string request = "<Request AddExpandoFieldTypeSuffix=\"true\" SchemaVersion=\"15.0.0.0\" LibraryVersion=\"16.0.0.0\" ApplicationName=\".NET Library\" xmlns=\"http://schemas.microsoft.com/sharepoint/clientquery/2009\"><Actions><ObjectPath Id=\"2\" ObjectPathId=\"1\" /><ObjectPath Id=\"4\" ObjectPathId=\"3\" /><ObjectPath Id=\"6\" ObjectPathId=\"5\" /><ObjectPath Id=\"8\" ObjectPathId=\"7\" /><ObjectIdentityQuery Id=\"9\" ObjectPathId=\"7\" /><ObjectPath Id=\"11\" ObjectPathId=\"10\" /><Query Id=\"12\" ObjectPathId=\"10\"><Query SelectAllProperties=\"true\"><Properties /></Query><ChildItemQuery SelectAllProperties=\"true\"><Properties /></ChildItemQuery></Query></Actions><ObjectPaths><StaticProperty Id=\"1\" TypeId=\"{3747adcd-a3c3-41b9-bfab-4a64dd2f1e0a}\" Name=\"Current\" /><Property Id=\"3\" ParentId=\"1\" Name=\"Web\" /><Property Id=\"5\" ParentId=\"3\" Name=\"Lists\" /><Method Id=\"7\" ParentId=\"5\" Name=\"GetByTitle\"><Parameters><Parameter Type=\"String\">TestList</Parameter></Parameters></Method><Method Id=\"10\" ParentId=\"7\" Name=\"GetItems\"><Parameters><Parameter TypeId=\"{3d248d7b-fc86-40a3-aa97-02a75d69fb8a}\"><Property Name=\"AllowIncrementalResults\" Type=\"Boolean\">false</Property><Property Name=\"DatesInUtc\" Type=\"Boolean\">true</Property><Property Name=\"FolderServerRelativePath\" Type=\"Null\" /><Property Name=\"FolderServerRelativeUrl\" Type=\"Null\" /><Property Name=\"ListItemCollectionPosition\" Type=\"Null\" /><Property Name=\"ViewXml\" Type=\"String\"><View Scope=\"RecursiveAll\"><ViewFields><FieldRef Name=\"Id\" /><FieldRef Name=\"Title\" /><FieldRef Name=\"Author\" /><FieldRef Name=\"Editor\" /></ViewFields><RowLimit>5</RowLimit></View></Property></Parameter></Parameters></Method></ObjectPaths></Request>"; CSOMRequest deserializedRequest = MockEntryResponseProvider.GetRequest(request); ObjectPathMethod getItemsMethod = deserializedRequest.ObjectPaths.Last() as ObjectPathMethod; Assert.AreEqual("{3d248d7b-fc86-40a3-aa97-02a75d69fb8a}", getItemsMethod.Parameters.First().TypeId); Assert.AreEqual(6, getItemsMethod.Parameters.First().Properties.Count); }
public virtual void AddToMockResponse(RequestExecutedArgs requestExecutedArgs) { if (requestExecutedArgs.RequestBody.Contains("GetUpdatedFormDigestInformation ")) { return; } CSOMRequest request = MockEntryResponseProvider.GetRequest(requestExecutedArgs.RequestBody); List <ActionObjectPath <object> > requestedOperations = MockEntryResponseProvider.GetActionObjectPathsFromRequest <object>(request); foreach (ActionObjectPath <object> requestedOperation in requestedOperations) { MockResponseEntry mockResponseEntry = requestedOperation.GenerateMock(requestExecutedArgs.ResponseBody, requestExecutedArgs.CalledUrl); if (mockResponseEntry != null && mockResponseEntry.SerializedReturnValue != "{\"IsNull\":false}") { Responses.Add(mockResponseEntry); } } }
public string GetResponse(string url, string verb, string body) { CurrentUrlResponses = ResponseEntries.Where(entry => entry.Url == url || entry.Url + "/_vti_bin/client.svc/ProcessQuery" == url) .ToList(); StringBuilder responseBuilder = new StringBuilder(); responseBuilder.Append('['); responseBuilder.Append(JsonConvert.SerializeObject(ResponseHeader)); CSOMRequest request = GetRequest(body); List <ActionObjectPath <T> > actionsInRequest = GetActionObjectPathsFromRequest <T>(request); foreach (ActionObjectPath <T> action in actionsInRequest) { int id = action.Action.Id; responseBuilder.Append($",{id}, {action.GetResponse(CurrentUrlResponses, request)}"); } responseBuilder.Append(']'); return(responseBuilder.ToString()); }
public static List <ActionObjectPath <T> > GetActionObjectPathsFromRequest <T>(CSOMRequest request) { List <ActionObjectPath <T> > result = new List <ActionObjectPath <T> >(); foreach (BaseAction action in request.Actions) { Identity associatedIdentity = request.ObjectPaths.FirstOrDefault(path => path.Id == action.ObjectPathId); result.Add(new ActionObjectPath <T>() { Action = action, ObjectPath = associatedIdentity }); } return(result); }