public void ProgramminglanguageJavaDeleteOverPair() { ReportDetail("ProgramminglanguageJavaDeleteOverPair"); var dataSource = this.Graph; var factory = new ThingEntityGraphFactory <EntityProgrammingLanguageFactory>(); factory.Populate(dataSource); var java = new TestItem(factory.Nodes[3].Id, null, null, null); // Java var programming = new TestItem(factory.Nodes[1].Id, null, null, null); // Programming var programming2Language = new TestItem(factory.Edges[1].Id, null, null, null); // Programming->Language this.Close(); dataSource = this.Graph; java.thing = dataSource.GetById(java.id); programming.thing = dataSource.GetById(programming.id); programming2Language.thing = dataSource.GetById(programming2Language.id); var pairOne = new VisualThingGraph(new VisualGraph(), dataSource); programming.one = pairOne.Get(programming.thing); Expand <IVisual, IVisualEdge>(pairOne, programming.one); var pairOneTwigs = pairOne.Twig(java.one); var dataSourceTwigs = dataSource.Twig(java.thing); java.one = pairOne.Get(java.thing); programming2Language.one = pairOne.Get(programming2Language.thing); Remove <IVisual, IVisualEdge>(pairOne, java.one); IsRemoved <IVisual, IVisualEdge>(pairOne, programming.one, java.one); IsRemoved <IVisual, IVisualEdge>(pairOne, pairOneTwigs); IsRemoved <IVisual, IVisualEdge>(pairOne, pairOne.Twig(programming2Language.one), java.one); IsRemoved <IThing, ILink>(dataSource, programming.thing, java.thing); IsRemoved <IThing, ILink>(dataSource, dataSourceTwigs); IsRemoved <IThing, ILink>(dataSource, dataSource.Twig(programming2Language.thing), java.thing); }
public void ProgramminglanguageJavaDeleteTestPingBack() { ReportDetail("ProgramminglanguageJavaDeleteTestPingBack"); var dataSource = this.Graph; var factory = new ThingEntityGraphFactory <EntityProgrammingLanguageFactory> (); factory.Populate(dataSource); var java = new TestItem(factory.Nodes[3].Id, null, null, null); // Java var list = new TestItem(factory.Nodes[7].Id, null, null, null); // List var programming = new TestItem(factory.Nodes[1].Id, null, null, null); // Programming var programming2Language = new TestItem(factory.Edges[1].Id, null, null, null); // Programming->Language this.Close(); dataSource = this.Graph; java.thing = dataSource.GetById(java.id); list.thing = dataSource.GetById(list.id); programming2Language.thing = dataSource.GetById(programming2Language.id); programming.thing = dataSource.GetById(programming.id); var pairOne = new VisualThingGraph(new VisualGraph(), dataSource); var viewOne = new SubGraph <IVisual, IVisualEdge>(pairOne, new VisualGraph()); programming.one = pairOne.Get(programming.thing); // Programming // expand viewOne: foreach (var item in pairOne.Walk().DeepWalk(programming.one, 0)) { viewOne.Sink.Add(item.Node); } var pairOneTwigs = pairOne.Twig(java.one); var dataSourceTwigs = dataSource.Twig(java.thing); var pairTwo = new VisualThingGraph(new VisualGraph(), dataSource); var viewTwo = new SubGraph <IVisual, IVisualEdge>(pairTwo, new VisualGraph()); java.one = pairOne.Get(java.thing); java.two = pairTwo.Get(java.thing); programming.two = pairTwo.Get(programming.thing); // delete over PingBack in both views: var deleteCollection = new List <IVisualEdge>(viewOne.PostorderTwig(java.one)); foreach (var linkOne in deleteCollection) // Java { var linkTwo = viewOne.LookUp <IVisual, IVisualEdge, IThing, ILink>(viewTwo, linkOne); viewTwo.Remove(linkTwo); viewOne.Remove(linkOne); } java.two = viewOne.LookUp <IVisual, IVisualEdge, IThing, ILink>(viewTwo, java.one); viewTwo.Remove(java.two); viewOne.Remove(java.one); // testing the dataSource: IsRemoved <IThing, ILink>(dataSource, programming.thing, java.thing); var edges = dataSource.Edges(programming2Language.thing); foreach (var link in edges) { Assert.AreNotEqual(link.Root, java.thing); Assert.AreNotEqual(link.Leaf, java.thing); } IsRemoved <IThing, ILink>(dataSource, dataSourceTwigs); // testing pairOne IsRemoved <IVisual, IVisualEdge>(pairOne, programming.one, java.one); IsRemoved <IVisual, IVisualEdge>(pairOne, pairOneTwigs); // testing pairTwo IsRemoved <IVisual, IVisualEdge>(pairTwo, programming.two, java.two); }