Beispiel #1
0
        public void TestFindMethodCalls_Nested() {
            File.Copy(@"..\..\TestInputs\nested_method_calls.cpp", Path.Combine(TestDir, "nested_method_calls.cpp"));

            using(var dataProj = new DataProject<CompleteWorkingSet>(DataDir, TestDir, SrcMLDir)) {
                dataProj.Update();

                NamespaceDefinition globalScope;
                MethodCall[] expected;
                Assert.That(dataProj.WorkingSet.TryObtainReadLock(Timeout.Infinite, out globalScope));
                try {
                    expected = new[] {
                        globalScope.FindExpressions<MethodCall>(true).First(mc => mc.Name == "ToString"),
                        globalScope.FindExpressions<MethodCall>(true).First(mc => mc.Name == "SomeMethodCall"),
                        globalScope.FindExpressions<MethodCall>(true).First(mc => mc.Name == "printf")
                    };
                } finally {
                    dataProj.WorkingSet.ReleaseReadLock();
                }

                var query = new FindMethodCallsAtLocationQuery(dataProj.WorkingSet, Timeout.Infinite);
                var testFile = Path.GetFullPath(Path.Combine(TestDir, "nested_method_calls.cpp"));
                var actual = query.Execute(new SourceLocation(testFile, 4, 41));
                Assert.IsNotNull(actual);
                Assert.AreEqual(expected.Length, actual.Count);
                for(int i = 0; i < expected.Length; i++) {
                    Assert.AreSame(expected[i], actual[i]);
                }

            }
        }
Beispiel #2
0
        public void TestFindMethodCalls_Nested()
        {
            File.Copy(@"..\..\TestInputs\nested_method_calls.cpp", Path.Combine(TestDir, "nested_method_calls.cpp"));

            using (var dataProj = new DataProject <CompleteWorkingSet>(DataDir, TestDir, SrcMLDir)) {
                dataProj.Update();

                NamespaceDefinition globalScope;
                MethodCall[]        expected;
                Assert.That(dataProj.WorkingSet.TryObtainReadLock(Timeout.Infinite, out globalScope));
                try {
                    expected = new[] {
                        globalScope.FindExpressions <MethodCall>(true).First(mc => mc.Name == "ToString"),
                        globalScope.FindExpressions <MethodCall>(true).First(mc => mc.Name == "SomeMethodCall"),
                        globalScope.FindExpressions <MethodCall>(true).First(mc => mc.Name == "printf")
                    };
                } finally {
                    dataProj.WorkingSet.ReleaseReadLock();
                }

                var query    = new FindMethodCallsAtLocationQuery(dataProj.WorkingSet, Timeout.Infinite);
                var testFile = Path.GetFullPath(Path.Combine(TestDir, "nested_method_calls.cpp"));
                var actual   = query.Execute(new SourceLocation(testFile, 4, 41));
                Assert.IsNotNull(actual);
                Assert.AreEqual(expected.Length, actual.Count);
                for (int i = 0; i < expected.Length; i++)
                {
                    Assert.AreSame(expected[i], actual[i]);
                }
            }
        }
Beispiel #3
0
        public void TestFindMethodCalls_Simple() {
            File.Copy(@"..\..\TestInputs\function_def.cpp", Path.Combine(TestDir, "function_def.cpp"));

            using(var dataProj = new DataProject<CompleteWorkingSet>(DataDir, TestDir, SrcMLDir)) {
                dataProj.Update();

                NamespaceDefinition globalScope;
                MethodCall expected;
                Assert.That(dataProj.WorkingSet.TryObtainReadLock(Timeout.Infinite, out globalScope));
                try {
                    expected = globalScope.FindExpressions<MethodCall>(true).First(mc => mc.Name == "MyFunction");
                } finally {
                    dataProj.WorkingSet.ReleaseReadLock();
                }

                var query = new FindMethodCallsAtLocationQuery(dataProj.WorkingSet, Timeout.Infinite);
                var testFile = Path.GetFullPath(Path.Combine(TestDir, "function_def.cpp"));
                var actual = query.Execute(new SourceLocation(testFile, 12, 20));
                Assert.IsNotNull(actual);
                Assert.AreEqual(1, actual.Count);
                Assert.AreSame(expected, actual[0]);
            }
        }
Beispiel #4
0
        public void TestFindMethodCalls_Simple()
        {
            File.Copy(@"..\..\TestInputs\function_def.cpp", Path.Combine(TestDir, "function_def.cpp"));

            using (var dataProj = new DataProject <CompleteWorkingSet>(DataDir, TestDir, SrcMLDir)) {
                dataProj.Update();

                NamespaceDefinition globalScope;
                MethodCall          expected;
                Assert.That(dataProj.WorkingSet.TryObtainReadLock(Timeout.Infinite, out globalScope));
                try {
                    expected = globalScope.FindExpressions <MethodCall>(true).First(mc => mc.Name == "MyFunction");
                } finally {
                    dataProj.WorkingSet.ReleaseReadLock();
                }

                var query    = new FindMethodCallsAtLocationQuery(dataProj.WorkingSet, Timeout.Infinite);
                var testFile = Path.GetFullPath(Path.Combine(TestDir, "function_def.cpp"));
                var actual   = query.Execute(new SourceLocation(testFile, 12, 20));
                Assert.IsNotNull(actual);
                Assert.AreEqual(1, actual.Count);
                Assert.AreSame(expected, actual[0]);
            }
        }