コード例 #1
0
        public void ProgramminglanguageJavaDeleteTest()
        {
            ReportDetail("ProgramminglanguageJavaDeleteTest");
            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);

            Expand <IThing, ILink>(dataSource, programming.thing);

            var dataSourceTwigs = dataSource.Twig(java.thing);

            Remove <IThing, ILink>(dataSource, java.thing);

            IsRemoved <IThing, ILink>(dataSource, programming.thing, java.thing);
            IsRemoved <IThing, ILink>(dataSource, dataSourceTwigs);
            IsRemoved <IThing, ILink> (dataSource, dataSource.Twig(programming2Language.thing), java.thing);
        }
コード例 #2
0
ファイル: WrapperTest.cs プロジェクト: git-thinh/limada
        public void ThingGraphFactory()
        {
            var graph = new VisualThingGraph();

            var factory = new ThingEntityGraphFactory <ProgrammingLanguageFactory <IGraphEntity, IGraphEdge> > ();

            factory.Populate(graph.Source);
            Trace.Write(
                GraphTestUtils.ReportGraph <IThing, ILink> (graph.Source, factory.Name));
        }
コード例 #3
0
ファイル: WrapperTest.cs プロジェクト: git-thinh/limada
        public void FoldingExpandTest()
        {
            var graph = new VisualThingGraph();

            var test = new EntityProgrammingSceneTest();

            test.Mock.SampleFactory.Graph = graph;
            test.Mock.Scene       = new Scene();
            test.Mock.Scene.Graph = graph;

            var factory = new ThingEntityGraphFactory <ProgrammingLanguageFactory <IGraphEntity, IGraphEdge> > ();

            factory.Count = 10;
            factory.Populate(graph.Source);

            test.Mock.SetFocused(graph.Get(factory.Nodes[1]));
            Trace.Write(
                GraphTestUtils.ReportGraph <IVisual, IVisualEdge> (graph.Sink, factory.Name));

            test.Mock.SceneFacade.Expand(false);

            Trace.Write(
                GraphTestUtils.ReportGraph <IVisual, IVisualEdge> (graph.Sink, factory.Name));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        public virtual void ProgramminglanguageJavaDeleteTest2()
        {
            var target = this.Graph;

            var factory = new ThingEntityGraphFactory <EntityProgrammingLanguageFactory>();

            factory.Populate(target);

            var testThing  = factory.Nodes[3]; // Java
            var testThing2 = factory.Nodes[7]; // List
            var testThing3 = factory.Edges[1]; // Programming->Language
            var testThing4 = factory.Nodes[1]; // Programming

            var pair = new HollowGraphPair <IGraphEntity, IThing, IGraphEdge, ILink> (
                new Limaki.Graphs.Graph <IGraphEntity, IGraphEdge> (),
                target,
                new GraphEntity2ThingTransformer()
                );

            pair.Mapper.ConvertSourceSink();

            var testEntity = pair.Get(testThing);
            var testItem4  = pair.Get(testThing4);

            Assert.IsTrue(target.Contains(testThing));

            var deleteCollection =
                new List <IGraphEdge>(pair.PostorderTwig(testEntity));

            foreach (var link in deleteCollection)  // Java
            {
                pair.Remove(link);
            }

            pair.Remove(testEntity); // Java


            foreach (var link in deleteCollection)  // Java
            {
                pair.Remove(link);
            }

            pair.Remove(testEntity); // Java

            foreach (var item in pair.Source.Walk().DeepWalk(testThing4, 0))
            {
                var thing = item.Node;
                Assert.AreNotEqual(thing, testThing);
                if (thing is ILink)
                {
                    var link = (ILink)thing;
                    Assert.AreNotEqual(link.Root, testThing);
                    Assert.AreNotEqual(link.Leaf, testThing);
                }
            }


            foreach (var item in pair.Walk().DeepWalk(testItem4, 0))
            {
                var thing = item.Node;
                Assert.AreNotEqual(thing, testEntity);
                if (thing is IGraphEdge)
                {
                    var link = (IGraphEdge)thing;
                    Assert.AreNotEqual(link.Root, testEntity);
                    Assert.AreNotEqual(link.Leaf, testEntity);
                }
            }
            ReportSummary();
        }