public void TestMergingNodeGroups() { /* test the case where two node groups come from the "same" model and completely share the sparqlIDs */ List <NodeGroup> nodeGroupsToMerge = new List <NodeGroup>(); NodeGroup ng_001 = new NodeGroup(); NodeGroup ng_002 = new NodeGroup(); JsonObject jsonRenderedNodeGroup = (JsonObject.Parse(jsonContent)).GetNamedObject("sNodeGroup"); ng_001.AddJsonEncodedNodeGroup(jsonRenderedNodeGroup); ng_002.AddJsonEncodedNodeGroup(jsonRenderedNodeGroup); nodeGroupsToMerge.Add(ng_001); nodeGroupsToMerge.Add(ng_002); NodeGroup ngMerged = new NodeGroup(); ngMerged.AddJsonEncodedNodeGroup(ng_001.ToJson()); ngMerged.AddJsonEncodedNodeGroup(ng_002.ToJson()); Assert.IsTrue(ngMerged.GetNodeCount() == (ng_001.GetNodeCount() + ng_002.GetNodeCount())); // a bit of Debug outputs: Debug.WriteLine("Node group 1 sparqlIDs :"); foreach (String currId in ng_001.GetSparqlNameHash().Keys) { Debug.Write(currId + " | "); } Debug.WriteLine(""); Debug.WriteLine("Node group 2 sparqlIDs :"); foreach (String currId in ng_002.GetSparqlNameHash().Keys) { Debug.Write(currId + " | "); } Debug.WriteLine(""); Debug.WriteLine("Node group (merged) sparqlIDs :"); foreach (String currId in ngMerged.GetSparqlNameHash().Keys) { Debug.Write(currId + " | "); } Debug.WriteLine(""); }
public void NodeGroupSerializationAfterReadingFromJson() { NodeGroup ngRoot = new NodeGroup(); ngRoot.AddJsonEncodedNodeGroup((JsonObject.Parse(jsonContent)).GetNamedObject("sNodeGroup")); JsonObject serialized = ngRoot.ToJson(); NodeGroup ngAlternate = new NodeGroup(); ngAlternate.AddJsonEncodedNodeGroup(serialized); Assert.AreEqual(ngRoot.GetNodeCount(), ngAlternate.GetNodeCount()); foreach (Node nd in ngRoot.GetNodeList()) { int propCount = nd.GetPropertyItems().Count; int nodeCount = nd.GetNodeItemList().Count; List <Node> compareNodes = ngAlternate.GetNodeByURI(nd.GetFullUriName()); Boolean foundIt = false; Debug.WriteLine("checking node: " + nd.GetFullUriName() + " with nodeItemCount: " + nodeCount + " , and propertyCount :" + propCount); foreach (Node comNode in compareNodes) { int compPropCount = comNode.GetPropertyItems().Count; int compNodeCount = comNode.GetNodeItemList().Count; if (propCount == compPropCount && nodeCount == compNodeCount) { foundIt = true; } } if (!foundIt) { Assert.Fail(); } } }
public void AddResult(NodeGroup ng) { this.AddResultsJson(ng.ToJson()); }
public async Task <SimpleResultSet> ExecuteDispatchFromNodeGroup(NodeGroup ng, JsonObject sparqlConnectionJson, JsonObject edcConstraintsJson, JsonObject runtimeConstraintsJson) { SimpleResultSet retval = null; conf.SetServiceEndpoint(mappingPrefix + dispatchFromNodegroupEndpoint); this.parameterJson.Add("jsonRenderedNodeGroup", JsonValue.CreateStringValue(ng.ToJson().ToString())); this.parameterJson.Add("sparqlConnection", JsonValue.CreateStringValue(sparqlConnectionJson.ToString())); if (edcConstraintsJson != null) { this.parameterJson.Add("externalDataConnectionConstraints", JsonValue.CreateStringValue(edcConstraintsJson.ToString())); } if (runtimeConstraintsJson != null) { this.parameterJson.Add("runtimeConstraints", JsonValue.CreateStringValue(runtimeConstraintsJson.ToString())); } try { JsonObject kObj = (JsonObject)(await this.Execute()); retval = SimpleResultSet.FromJson(kObj); retval.ThrowExceptionIfUnsuccessful(); } finally{ conf.SetServiceEndpoint(null); this.parameterJson.Remove("jsonRenderedNodeGroup"); this.parameterJson.Remove("sparqlConnection"); this.parameterJson.Remove("externalDataConnectionConstraints"); this.parameterJson.Remove("runtimeConstraints"); } return(retval); }