Ejemplo n.º 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testPostorderDepthFirstReturnsDeeperNodesFirst()
        public virtual void TestPostorderDepthFirstReturnsDeeperNodesFirst()
        {
            Traverser      traverser        = GraphDb.traversalDescription().order(POSTORDER_DEPTH_FIRST).traverse(Node("1"));
            int            i                = 0;
            IList <string> encounteredNodes = new List <string>();

            using (Transaction tx = BeginTx())
            {
                foreach (Path pos in traverser)
                {
                    encounteredNodes.Add(( string )pos.EndNode().getProperty("name"));
                    assertEquals(ExpectedDepth(12 - i++), pos.Length());
                }
                tx.Success();
            }
            assertEquals(13, i);

            assertTrue(encounteredNodes.IndexOf("5") < encounteredNodes.IndexOf("2"));
            assertTrue(encounteredNodes.IndexOf("6") < encounteredNodes.IndexOf("2"));
            assertTrue(encounteredNodes.IndexOf("7") < encounteredNodes.IndexOf("2"));
            assertTrue(encounteredNodes.IndexOf("8") < encounteredNodes.IndexOf("3"));
            assertTrue(encounteredNodes.IndexOf("9") < encounteredNodes.IndexOf("3"));
            assertTrue(encounteredNodes.IndexOf("A") < encounteredNodes.IndexOf("3"));
            assertTrue(encounteredNodes.IndexOf("B") < encounteredNodes.IndexOf("4"));
            assertTrue(encounteredNodes.IndexOf("C") < encounteredNodes.IndexOf("4"));
            assertTrue(encounteredNodes.IndexOf("D") < encounteredNodes.IndexOf("4"));
            assertTrue(encounteredNodes.IndexOf("2") < encounteredNodes.IndexOf("1"));
            assertTrue(encounteredNodes.IndexOf("3") < encounteredNodes.IndexOf("1"));
            assertTrue(encounteredNodes.IndexOf("4") < encounteredNodes.IndexOf("1"));
        }
Ejemplo n.º 2
0
        // Usage example of processors and traversers

        static string printTree(Node tree, System.Type traverserType, int method)
        {
            AstPrinter proc = null;

            switch (method)
            {                   // Possible methods to create a processor:
            // use traverser object
            case 1:
                Traverser <bool> vtrav = (Traverser <bool>)Activator.CreateInstance(traverserType);
                proc            = new AstPrinter(vtrav);
                vtrav.Processor = proc;
                break;

            // use 2 steps
            case 2:
                proc = new AstPrinter();
                Activator.CreateInstance(traverserType, proc);
                break;

            // explicitly set traverser
            case 3:
                proc = new AstPrinter();
                Traverser <bool> trav = (Traverser <bool>)Activator.CreateInstance(traverserType, proc);
                trav.Processor = proc;
                proc.traverse  = trav.traverse;
                break;

            default:
                return("");
            }

            proc.Visit(tree);
            return(proc.ToString());
        }
        public void Throws_ifGivenANonTraversable_instance(object instance)
        {
            var actual = Record.Exception(() => Traverser.TraverseInstance(instance, 10, listener));

            Assert.NotNull(actual);
            Assert.IsType <InstanceTraversalException>(actual);
        }
        public void EventHandlersAreCalled()
        {
            var victim = new Victim();

            Traverser.TraverseInstance(victim, 5, listener);

            var type = typeof(Victim);

            A.CallTo(() => listener.OnConstructor(GetConstructor(type, new Type[0]), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnConstructor(GetConstructor(type, new[] { typeof(string) }), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();

            A.CallTo(() => listener.OnField(GetField(type, "PrivateField"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnField(GetField(type, "PrivateStaticField"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnField(GetField(type, "PublicField"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnField(GetField(type, "BaseField"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();

            A.CallTo(() => listener.OnProperty(GetProp(type, "PrivateProperty"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnProperty(GetProp(type, "PrivateStaticProperty"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnProperty(GetProp(type, "PublicProperty"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnProperty(GetProp(type, "BaseProperty"), A <Func <object> > ._, A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();

            A.CallTo(() => listener.OnMethod(GetMethod(type, "PrivateMethod", new Type[0]), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnMethod(GetMethod(type, "PrivateStaticMethod", new Type[0]), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnMethod(GetMethod(type, "PublicMethod", new Type[0]), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnMethod(GetMethod(type, "BaseMethod", new Type[0]), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnMethod(GetMethod(type, "OverloadedMethod", new Type[0]), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnMethod(GetMethod(type, "OverloadedMethod", new [] { typeof(int) }), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => listener.OnMethod(GetMethod(type, "OverloadedMethod", new [] { typeof(int), typeof(int) }), A <InstanceTraversalContext> ._)).MustHaveHappenedOnceExactly();

            A.CallTo(() => listener.OnMaxDepthReached(A <InstanceTraversalContext> ._)).MustNotHaveHappened();
        }
Ejemplo n.º 5
0
        protected virtual bool ProcessToggleInput()
        {
            if (InputModule.Sprint && Control)
            {
                if (!ToggleLock)
                {
                    ToggleLock = true;

                    if (TargetState == Data)
                    {
                        Traverser.GoTo(State.Walk);
                    }
                    else
                    {
                        Traverser.GoTo(Data);
                    }

                    return(true);
                }
            }
            else
            {
                ToggleLock = false;
            }

            if (!Control && TargetState == Data)
            {
                Traverser.GoTo(State.Walk);
                return(true);
            }

            return(false);
        }
Ejemplo n.º 6
0
        public ParsedData GetColumns(string sql)
        {
            var parser     = new TSql140Parser(true);
            var parsedData = new ParsedData();

            using (var reader = new StringReader(sql))
            {
                var result     = parser.Parse(reader, out var errors);
                var traverser  = new Traverser(_log);
                var columnData = traverser.TraverseObject(result, null).Distinct().ToArray();
                var tableData  = columnData.Where(c => c?.AmbiguousTableReferences != null)
                                 .SelectMany(c => c.AmbiguousTableReferences)
                                 .Concat(columnData.Select(c => c.AbsoluteTableReference))
                                 .Where(c => c != null)
                                 .Distinct().ToArray();

                parsedData.databaselist = tableData.Select(t => t.GetDatabase()).Where(c => c != null).Distinct().ToList();
                parsedData.schemalist   = tableData.Select(t => t.GetSchema()).Where(c => c != null).Distinct().ToList();
                parsedData.tablelist    = tableData.Select(t => t.GetFullyQualifiedName(_bracketOutput)).Where(c => c != null).Distinct().ToList();
                parsedData.columnlist   = columnData.Select(c => c.GetFullyQualifiedName(_bracketOutput)).Where(c => c != null).Distinct().ToList();
                parsedData.errors       = errors.Select(e => e.ToString()).ToList();
            }

            return(parsedData);
        }
Ejemplo n.º 7
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: private org.neo4j.graphdb.traversal.Traverser traverser(org.neo4j.graphdb.Node start, final org.neo4j.graphdb.Node end, org.neo4j.graphalgo.impl.util.PathInterest interest)
        private Traverser Traverser(Node start, Node end, PathInterest interest)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.apache.commons.lang3.mutable.MutableDouble shortestSoFar = new org.apache.commons.lang3.mutable.MutableDouble(Double.MAX_VALUE);
            MutableDouble shortestSoFar = new MutableDouble(double.MaxValue);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.apache.commons.lang3.mutable.MutableDouble startSideShortest = new org.apache.commons.lang3.mutable.MutableDouble(0);
            MutableDouble startSideShortest = new MutableDouble(0);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.apache.commons.lang3.mutable.MutableDouble endSideShortest = new org.apache.commons.lang3.mutable.MutableDouble(0);
            MutableDouble endSideShortest  = new MutableDouble(0);
            PathExpander  dijkstraExpander = new DijkstraBidirectionalPathExpander(_expander, shortestSoFar, true, startSideShortest, endSideShortest, _epsilon);

            GraphDatabaseService db = start.GraphDatabase;

            TraversalDescription side = Db.traversalDescription().expand(dijkstraExpander, _stateFactory).order(new DijkstraSelectorFactory(interest, _costEvaluator)).evaluator(new DijkstraBidirectionalEvaluator(_costEvaluator)).uniqueness(Uniqueness.NODE_PATH);

            TraversalDescription startSide = side;
            TraversalDescription endSide   = side.Reverse();

            BidirectionalTraversalDescription traversal = Db.bidirectionalTraversalDescription().startSide(startSide).endSide(endSide).collisionEvaluator(Evaluators.all()).collisionPolicy((evaluator, pathPredicate) => new DijkstraBranchCollisionDetector(evaluator, _costEvaluator, shortestSoFar, _epsilon, pathPredicate));

            _lastTraverser = traversal.Traverse(start, end);
            return(_lastTraverser);
        }
Ejemplo n.º 8
0
        public override IEnumerable <Path> FindAllPaths(Node start, Node end)
        {
            _lastTraverser = InstantiateTraverser(start, end);
            int?maxResultCount = maxResultCount();

            return(maxResultCount != null ? new LimitingResourceIterable <Path>(_lastTraverser, maxResultCount.Value) : _lastTraverser);
        }
Ejemplo n.º 9
0
        public void Array_OnProperty_isCalled_forEachElement_andRecurses()
        {
            var one    = new InnocentBystander();
            var two    = new InnocentBystander();
            var three  = new InnocentBystander();
            var victim = new ArrayVictim {
                PropComplex = new[] { one, two, three }
            };

            var type        = victim.GetType();
            var complexType = typeof(InnocentBystander);

            var callCounts = new Dictionary <string, int>
            {
                { ".Root", 0 },
                { "PropComplex[0]", 0 },
                { "PropComplex[0].FieldString", 0 },
                { "PropComplex[1]", 0 },
                { "PropComplex[1].FieldString", 0 },
                { "PropComplex[2]", 0 },
                { "PropComplex[2].FieldString", 0 }
            };

            // the calls for the array Prop and each of its elements
            A.CallTo(() => listener.OnProperty(GetProp(type, "PropComplex"), A <Func <object> > ._, A <InstanceTraversalContext> ._))
            .Invokes(x =>
            {
                var ctx = (InstanceTraversalContext)x.Arguments[2];

                if (ctx.CurrentDepth == 0)
                {
                    callCounts[".Root"]++;
                    return;
                }

                // for the individual elements
                Assert.Equal(1, ctx.CurrentDepth);
                callCounts[ctx.BreadcrumbAsString]++;
            });

            // the calls for the recursion of each array element
            A.CallTo(() => listener.OnField(GetField(complexType, "FieldString"), A <Func <object> > ._, A <InstanceTraversalContext> ._))
            .Invokes(x =>
            {
                var ctx = (InstanceTraversalContext)x.Arguments[2];

                Assert.Equal(1, ctx.CurrentDepth);
                callCounts[$"{ctx.BreadcrumbAsString}.FieldString"]++;
            });

            Traverser.TraverseInstance(victim, 5, listener);

            // all "methods" should have been called exactly once
            foreach (var(key, value) in callCounts)
            {
                // this sillyness provides us with a hint for which thing was not called as expected
                Assert.Equal($"{key}=1", $"{key}={value}");
            }
        }
Ejemplo n.º 10
0
        public void ShouldReturnFalseForEqualsWhereOtherIsNull()
        {
            var traverser = new Traverser("anObject");

            var areEqual = traverser.Equals(null);

            Assert.False(areEqual);
        }
Ejemplo n.º 11
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: public Iterable<org.neo4j.graphalgo.WeightedPath> findAllPaths(org.neo4j.graphdb.Node start, final org.neo4j.graphdb.Node end)
        public override IEnumerable <WeightedPath> FindAllPaths(Node start, Node end)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.graphdb.traversal.Traverser traverser = traverser(start, end, interest);
            Traverser traverser = traverser(start, end, _interest);

            return(() => new WeightedPathIterator(traverser.GetEnumerator(), _costEvaluator, _epsilon, _interest));
        }
        public void Breadth()
        {
            var graph = GetSampleGraph();
            var res   = Traverser.BreadthFirst(graph).ToList();

            CollectionAssert.AreEquivalent(graph.Vertexes.ToArray(), res);
            Assert.IsFalse(res.IndexOf(1) + 1 == res.IndexOf(2));
        }
Ejemplo n.º 13
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: public Iterable<org.neo4j.graphalgo.WeightedPath> findAllPaths(org.neo4j.graphdb.Node start, final org.neo4j.graphdb.Node end)
        public override IEnumerable <WeightedPath> FindAllPaths(Node start, Node end)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.graphdb.traversal.Traverser traverser = traverser(start, end, org.neo4j.graphalgo.impl.util.PathInterestFactory.allShortest(epsilon));
            Traverser traverser = traverser(start, end, PathInterestFactory.allShortest(_epsilon));

            return(() => new TopFetchingWeightedPathIterator(traverser.GetEnumerator(), _costEvaluator));
        }
Ejemplo n.º 14
0
 public TriggerTraverser(string triggerName, NodeCanvas canvas, Traverser nextTraverser, Node nextNode) : base(canvas)
 {
     this.triggerName   = triggerName;
     nodeCanvas         = canvas;
     this.nextTraverser = nextTraverser;
     this.nextNode      = nextNode;
     startNodeName      = "StartTriggerNode";
 }
        public void IgnoreAutoProperty_backing_methods()
        {
            var victim = new Victim();

            Traverser.TraverseInstance(victim, 5, listener);

            // this is just one example
            A.CallTo(() => listener.OnMethod(A <MethodInfo> .That.Matches(x => x.Name.Equals("<PublicProperty>k__BackingField")), A <InstanceTraversalContext> ._)).MustNotHaveHappened();
        }
        public void Dictionary_OnProperty_simpleKey_complexValue()
        {
            var victim = new SimpleKeyComplexValueVictim
            {
                Dictionary = new Dictionary <string, ComplexValue>
                {
                    { "one", new ComplexValue() },
                    { "two", new ComplexValue() }
                }
            };

            var type = victim.GetType();

            var callCounts = new Dictionary <string, int>
            {
                { ".Root", 0 },
                { "Dictionary[one]", 0 },
                { "Dictionary[one].String", 0 },
                { "Dictionary[two]", 0 },
                { "Dictionary[two].String", 0 }
            };

            // the calls for the list field and each of its elements
            A.CallTo(() => listener.OnProperty(GetProp(type, "Dictionary"), A <Func <object> > ._, A <InstanceTraversalContext> ._))
            .Invokes(x =>
            {
                var ctx = (InstanceTraversalContext)x.Arguments[2];

                if (ctx.CurrentDepth == 0)
                {
                    callCounts[".Root"]++;
                    return;
                }

                // for the individual elements
                Assert.Equal(1, ctx.CurrentDepth);
                callCounts[ctx.BreadcrumbAsString]++;
            });

            A.CallTo(() => listener.OnProperty(GetProp(typeof(ComplexValue), "String"), A <Func <object> > ._, A <InstanceTraversalContext> ._))
            .Invokes(x =>
            {
                var ctx = (InstanceTraversalContext)x.Arguments[2];

                Assert.Equal(1, ctx.CurrentDepth);
                callCounts[$"{ctx.BreadcrumbAsString}.String"]++;
            });

            Traverser.TraverseInstance(victim, 5, listener);

            // all "methods" should have been called exactly once
            foreach (var(key, value) in callCounts)
            {
                // this sillyness provides us with a hint for which thing was not called as expected
                Assert.Equal($"{key}=1", $"{key}={value}");
            }
        }
Ejemplo n.º 17
0
        public void ShouldReturnTrueForEqualsObjectWithSameObjectAndDifferentBulk()
        {
            var    firstTraverser  = new Traverser("anObject", 1234);
            object secondTraverser = new Traverser("anObject", 9876);

            var areEqual = firstTraverser.Equals(secondTraverser);

            Assert.True(areEqual);
        }
Ejemplo n.º 18
0
        public void RecursionDoesNotHappenOnPrimitives_nullables_andCertain_builtIns()
        {
            var victim = new NoRecursionOnTheseTypesVictim();

            Traverser.TraverseInstance(victim, 5, listener);

            A.CallTo(() => listener.OnField(A <FieldInfo> ._, A <Func <object> > ._, A <InstanceTraversalContext> .That.Matches(x => x.CurrentDepth > 0))).MustNotHaveHappened();
            A.CallTo(() => listener.OnProperty(A <PropertyInfo> ._, A <Func <object> > ._, A <InstanceTraversalContext> .That.Matches(x => x.CurrentDepth > 0))).MustNotHaveHappened();
            A.CallTo(() => listener.OnMethod(A <MethodInfo> ._, A <InstanceTraversalContext> ._)).MustNotHaveHappened();
        }
        public void IgnoreMembersDefinedOn_theLowLevel_Object_type()
        {
            var victim = new Victim();

            Traverser.TraverseInstance(victim, 5, listener);

            // these are just a couple of examples
            A.CallTo(() => listener.OnMethod(A <MethodInfo> .That.Matches(x => x.Name.Equals("ToString")), A <InstanceTraversalContext> ._)).MustNotHaveHappened();
            A.CallTo(() => listener.OnMethod(A <MethodInfo> .That.Matches(x => x.Name.Equals("GetHashCode")), A <InstanceTraversalContext> ._)).MustNotHaveHappened();
        }
Ejemplo n.º 20
0
        public void ShouldReturnEqualHashcodesForTraversersWithSameObjectAndDifferentBulk()
        {
            var firstTraverser  = new Traverser("anObject", 1234);
            var secondTraverser = new Traverser("anObject", 9876);

            var firstHashCode  = firstTraverser.GetHashCode();
            var secondHashCode = secondTraverser.GetHashCode();

            Assert.Equal(firstHashCode, secondHashCode);
        }
Ejemplo n.º 21
0
        public Column[] GetTraverserData(string sql)
        {
            var parser = new TSql140Parser(true);

            using (var reader = new StringReader(sql))
            {
                var result    = parser.Parse(reader, out var errors);
                var traverser = new Traverser(_log);
                return(traverser.TraverseObject(result, null).Distinct().ToArray());
            }
        }
        public void Toposort()
        {
            var graph = GetSampleGraph();
            var res   = Traverser.TopologicalOrder(graph).ToList();

            CollectionAssert.AreEquivalent(graph.Vertexes.ToArray(), res);
            Assert.IsTrue(res.IndexOf(0) < res.IndexOf(1));
            Assert.IsTrue(res.IndexOf(0) < res.IndexOf(2));
            Assert.IsTrue(res.IndexOf(0) < res.IndexOf(3));
            Assert.IsTrue(res.IndexOf(1) < res.IndexOf(2));
        }
Ejemplo n.º 23
0
                internal static void TestCorrectness()
                {
                    Traverser.traverseDirectory(".", f => { Console.WriteLine(f.FullName); }, d => true);

                    List <string> files = Traverser.listFiles(".");

                    foreach (var f in files)
                    {
                        Console.WriteLine(f);
                    }
                }
Ejemplo n.º 24
0
        public void ShouldDeserializeTraverser(int version)
        {
            const string json = "{\"@type\":\"g:Traverser\", \"@value\":{\"bulk\":{\"@type\":\"g:Int64\", " +
                                "\"@value\":10}, \"value\":{\"@type\":\"g:Int32\", \"@value\":1}}}";
            var reader = CreateStandardGraphSONReader(version);

            var       jsonElement       = JsonSerializer.Deserialize <JsonElement>(json);
            Traverser deserializedValue = reader.ToObject(jsonElement);

            Assert.Equal(10, deserializedValue.Bulk);
            Assert.Equal(1, deserializedValue.Object);
        }
Ejemplo n.º 25
0
 /// <inheritdoc />
 public bool Equals(Traverser other)
 {
     if (object.ReferenceEquals(null, other))
     {
         return(false);
     }
     if (object.ReferenceEquals(this, other))
     {
         return(true);
     }
     return(object.Equals(Object, other.Object));
 }
Ejemplo n.º 26
0
        public void Dictionary_OnProperty_complexKey_usesToString()
        {
            var victim = new ComplexKeyVictim
            {
                Dictionary = new Dictionary <ComplexValue, string>
                {
                    { new ComplexValue {
                          String = "one"
                      }, "1" },
                    { new ComplexValue {
                          String = "two"
                      }, "2" }
                }
            };

            var type = victim.GetType();

            var callCounts = new Dictionary <string, int>
            {
                { ".Root", 0 },
                { "Dictionary[ComplexValueToString_two]", 0 },
                { "Dictionary[ComplexValueToString_one]", 0 }
            };

            // the calls for the list field and each of its elements
            A.CallTo(() => listener.OnProperty(GetProp(type, "Dictionary"), A <Func <object> > ._, A <InstanceTraversalContext> ._))
            .Invokes(x =>
            {
                var ctx = (InstanceTraversalContext)x.Arguments[2];

                if (ctx.CurrentDepth == 0)
                {
                    callCounts[".Root"]++;
                    return;
                }

                // for the individual elements
                Assert.Equal(1, ctx.CurrentDepth);
                callCounts[ctx.BreadcrumbAsString]++;
            })
            .Returns(new SimpleInstanceListenerOnFieldOrPropResult {
                DoContinueRecursion = true
            });

            Traverser.TraverseInstance(victim, 5, listener);

            // all "methods" should have been called exactly once
            foreach (var(key, value) in callCounts)
            {
                // this sillyness provides us with a hint for which thing was not called as expected
                Assert.Equal($"{key}=1", $"{key}={value}");
            }
        }
Ejemplo n.º 27
0
        public void List_OnProperty_isCalled_forEachElement_but_doesNotRecurse_simple_types()
        {
            var victim = new ListVictim {
                PropIntList = new List <int> {
                    11, 22
                }
            };

            var type = victim.GetType();

            var callCounts = new Dictionary <string, int>
            {
                { ".Root", 0 },
                { "PropIntList[0]", 0 },
                { "PropIntList[1]", 0 }
            };

            // the calls for the list field and each of its elements
            A.CallTo(() =>
                     listener.OnProperty(GetProp(type, "PropIntList"), A <Func <object> > ._, A <InstanceTraversalContext> ._))
            .Invokes(x =>
            {
                var ctx = (InstanceTraversalContext)x.Arguments[2];

                if (ctx.CurrentDepth == 0)
                {
                    callCounts[".Root"]++;
                    return;
                }

                // for the individual elements
                Assert.Equal(1, ctx.CurrentDepth);
                callCounts[ctx.BreadcrumbAsString]++;
            })
            .Returns(new SimpleInstanceListenerOnFieldOrPropResult {
                DoContinueRecursion = true
            });

            Traverser.TraverseInstance(victim, 5, listener);

            A.CallTo(() => listener.OnField(
                         A <FieldInfo> .That.Not.Matches(x => x == GetField(type, "FieldList")),
                         A <Func <object> > ._,
                         A <IReadOnlyInstanceTraversalContext> ._)
                     ).MustNotHaveHappened();

            // all "methods" should have been called exactly once
            foreach (var(key, value) in callCounts)
            {
                // this sillyness provides us with a hint for which thing was not called as expected
                Assert.Equal($"{key}=1", $"{key}={value}");
            }
        }
Ejemplo n.º 28
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testDepthFirstTraversalReturnsNodesOnCorrectDepths()
        public virtual void TestDepthFirstTraversalReturnsNodesOnCorrectDepths()
        {
            using (Transaction transaction = BeginTx())
            {
                Traverser traverser = GraphDb.traversalDescription().depthFirst().traverse(Node("1"));
                int       i         = 0;
                foreach (Path pos in traverser)
                {
                    assertEquals(ExpectedDepth(i++), pos.Length());
                }
                assertEquals(13, i);
            }
        }
Ejemplo n.º 29
0
        /// <summary>
        /// Traverses all files from working directory and all files from index and
        /// updates the index if file is modified (or deleted).
        /// Finally prints status of all the files.
        /// </summary>
        public override void Process()
        {
            Index.Update();

            List <string> untrackedFiles = new List <string>();
            List <string> modifiedFiles  = new List <string>();
            List <string> stagedFiles    = new List <string>();
            List <string> deletedFiles   = new List <string>();

            IEnumerable <string> wdirFiles    = Traverser.GetAllWdirFiles();
            IEnumerable <string> trackedFiles = Index.GetAllTrackedFiles();

            ISet <string> allFiles = new HashSet <string>(wdirFiles);

            allFiles.UnionWith(trackedFiles);

            foreach (string file in allFiles)
            {
                switch (Index.ResolveFileStatus(new RelativePath(file)))
                {
                case FileStatus.Untracked:
                    untrackedFiles.Add(file);
                    break;

                case FileStatus.Modified:
                    modifiedFiles.Add(file);
                    break;

                case FileStatus.Staged:
                    stagedFiles.Add(file);
                    break;

                case FileStatus.Deleted:
                    deletedFiles.Add(file);
                    break;

                case FileStatus.Commited:
                case FileStatus.Ignored:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            PrintCurrentBranch();
            PrintModifiedAndDeletedFiles(modifiedFiles, deletedFiles);
            PrintStagedFiles(stagedFiles);
            PrintUntrackedFiles(untrackedFiles);
        }
Ejemplo n.º 30
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void relationshipsIteratorReturnAllNodes()
        public virtual void RelationshipsIteratorReturnAllNodes()
        {
            using (Transaction transaction = BeginTx())
            {
                Traverser traverser = GraphDb.traversalDescription().traverse(Node("1"));
                int       count     = 0;
                foreach (Relationship relationship in traverser.Relationships())
                {
                    assertNotNull("returned relationships should not be. relationship #" + count, relationship);
                    count++;
                }
                assertEquals(12, count);
            }
        }
Ejemplo n.º 31
0
 public void Setup()
 {
     _traverser = new Traverser();
 }