public void ParseMultipleParents() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\MultiParentTest.txt"); bool seenClass = false; foreach (var programElement in elements) { if (programElement.ProgramElementType == ProgramElementType.Class) { seenClass = true; var classElement = programElement as ClassElement; int numParents = 0; //TODO - not sure how we will be able to determine which are interfaces and which are classes //might have to just put all but the first one in interfaces? if (classElement.ImplementedInterfaces != String.Empty) { numParents += classElement.ImplementedInterfaces.Split(' ').Count(); } if (classElement.ExtendedClasses != String.Empty) { numParents += classElement.ExtendedClasses.Split(' ').Count(); } Assert.IsTrue(numParents == 4); } } Assert.IsTrue(seenClass); }
public void GenerateSrcMLShortestFileTest() { var parser = new SrcMLCSharpParser(generator); var srcML = parser.Parse("TestFiles\\ShortestCSharpFile.txt"); Assert.IsTrue(srcML != null); }
public void ParseClassTest() { bool seenClass = false; var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count > 0); foreach (ProgramElement pe in elements) { if (pe is ClassElement) { ClassElement classElem = (ClassElement)pe; if (classElem.Name == "SrcMLGenerator") { seenClass = true; Assert.AreEqual(classElem.DefinitionLineNumber, 14); Assert.AreEqual(classElem.AccessLevel, AccessLevel.Public); Assert.AreEqual(classElem.Namespace, "Sando.Parser"); Assert.True(classElem.FullFilePath.EndsWith("TestFiles\\ShortCSharpFile.txt")); } } } Assert.IsTrue(seenClass); }
public static List <ProgramElement> ParseCsharpFile(string filePath) { SrcMLCSharpParser parser = new SrcMLCSharpParser(new ABB.SrcML.SrcMLGenerator(TestUtils.SrcMLDirectory)); var elements = parser.Parse(filePath); return(elements); }
public void ClassInheritanceTest() { bool seenClass = false; var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\InheritanceCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count > 0); foreach (ProgramElement pe in elements) { if (pe is ClassElement) { ClassElement classElem = (ClassElement)pe; if (classElem.Name == "IndexerException") { seenClass = true; Assert.AreEqual(classElem.DefinitionLineNumber, 8); Assert.AreEqual(classElem.AccessLevel, AccessLevel.Public); Assert.AreEqual(classElem.Namespace, "Sando.Indexer.Exceptions"); //TODO - make this not dependent upon your path... //Assert.AreEqual(classElem.FullFilePath, "C:\\Users\\kosta\\sando\\Parser\\Parser.UnitTests\\TestFiles\\InheritanceCSharpFile.txt"); Assert.AreEqual(classElem.ExtendedClasses, "SandoException"); } } } Assert.IsTrue(seenClass); }
public void ParseMultipleParents() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\MultiParentTest.txt"); bool seenClass = false; foreach(var programElement in elements) { if(programElement.ProgramElementType == ProgramElementType.Class) { seenClass = true; var classElement = programElement as ClassElement; int numParents = 0; //TODO - not sure how we will be able to determine which are interfaces and which are classes //might have to just put all but the first one in interfaces? if(classElement.ImplementedInterfaces != String.Empty) { numParents += classElement.ImplementedInterfaces.Split(' ').Count(); } if(classElement.ExtendedClasses != String.Empty) { numParents += classElement.ExtendedClasses.Split(' ').Count(); } Assert.IsTrue(numParents==4); } } Assert.IsTrue(seenClass); }
public void ClassInheritanceTest() { bool seenClass = false; var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\InheritanceCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count > 0); foreach(ProgramElement pe in elements) { if(pe is ClassElement) { ClassElement classElem = (ClassElement)pe; if(classElem.Name == "IndexerException") { seenClass = true; Assert.AreEqual(classElem.DefinitionLineNumber, 8); Assert.AreEqual(classElem.AccessLevel, AccessLevel.Public); Assert.AreEqual(classElem.Namespace, "Sando.Indexer.Exceptions"); //TODO - make this not dependent upon your path... //Assert.AreEqual(classElem.FullFilePath, "C:\\Users\\kosta\\sando\\Parser\\Parser.UnitTests\\TestFiles\\InheritanceCSharpFile.txt"); Assert.AreEqual(classElem.ExtendedClasses, "SandoException"); } } } Assert.IsTrue(seenClass); }
public void ParsePossiblyFailingFile() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\MESTParsingFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count > 0); }
private SearchTester() { TestUtils.InitializeDefaultExtensionPoints(); //set up generator _parser = new SrcMLCSharpParser(new ABB.SrcML.SrcMLGenerator(TestUtils.SrcMLDirectory)); _luceneTempIndexesDirectory = PathManager.Instance.GetIndexPath(ServiceLocator.Resolve <SolutionKey>()); Directory.CreateDirectory(_luceneTempIndexesDirectory); TestUtils.ClearDirectory(_luceneTempIndexesDirectory); }
public void ParseMethodTest() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count > 0); CheckParseOfShortCSharpFile(elements); }
public void GIVEN_file_with_readonly_and_static_elements_WHEN_parse_method_is_called_THEN_valid_access_levels_are_retrieved() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); var readonlyField = elements.OfType <FieldElement>().FirstOrDefault(f => f.Name == "Language"); Assert.IsNotNull(readonlyField); Assert.AreEqual(readonlyField.AccessLevel, AccessLevel.Internal); var staticMethod = elements.OfType <MethodElement>().FirstOrDefault(f => f.Name == "SetSrcMLLocation"); Assert.IsNotNull(staticMethod); Assert.AreEqual(staticMethod.AccessLevel, AccessLevel.Public); }
public void CSharpRegionTest() { SrcMLCSharpParser parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\RegionTest.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count == 2); bool hasClass = false, hasMethod = false; foreach(var programElement in elements) { if(programElement as MethodElement != null) hasMethod = true; if(programElement as ClassElement != null) hasClass = true; } Assert.IsTrue(hasClass && hasMethod); }
public void BasicParserTest() { SrcMLCSharpParser parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count>0); bool hasClass=false, hasMethod=false; foreach (var programElement in elements) { if(programElement as MethodElement != null) hasMethod = true; if(programElement as ClassElement != null) hasClass = true; Assert.IsTrue(programElement.RawSource != null); } Assert.IsTrue(hasClass && hasMethod); }
public void MethodLinksToClassTest() { return; //NOTE: this test fails because of a bug in srcML //please turn this test back on once we receive a fix //from the srcML guys SrcMLCSharpParser parser = new SrcMLCSharpParser(); var elements = parser.Parse("..\\..\\Parser\\Parser.UnitTests\\TestFiles\\ImageCaptureCS.txt"); ClassElement ImageCaptureClassElement = null; bool foundMethod = false; // first find the class element foreach (ProgramElement pe in elements) { if (pe is ClassElement) { ClassElement cls = (ClassElement)pe; if (cls.Name == "ImageCapture") { ImageCaptureClassElement = cls; } } } // then the method element that should link to it foreach (ProgramElement pe in elements) { if (pe is MethodElement) { MethodElement method = (MethodElement)pe; if (method.Name == "CaptureByHdc") { foundMethod = true; Assert.AreEqual(method.ClassId, ImageCaptureClassElement.Id); Assert.AreEqual(method.ClassName, ImageCaptureClassElement.Name); } } } Assert.IsTrue(foundMethod); }
public void CSharpStructParserTest() { SrcMLCSharpParser parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\Struct1.cs.txt"); bool hasStruct = false; foreach (var programElement in elements) { if (programElement as StructElement != null) { StructElement structElem = (StructElement)programElement; Assert.AreEqual(structElem.Name, "SimpleStruct"); Assert.AreEqual(structElem.DefinitionLineNumber, 6); Assert.AreEqual(structElem.Namespace, "SimpleNamespace"); Assert.AreEqual(structElem.AccessLevel, AccessLevel.Internal); Assert.True(structElem.FullFilePath.EndsWith("TestFiles\\Struct1.cs.txt")); hasStruct = true; } } Assert.IsTrue(hasStruct); }
public void ParseProperties() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortInheritance.txt"); bool seenClass = false; int countProperties = 0; foreach (var programElement in elements) { if (programElement.ProgramElementType == ProgramElementType.Class) { seenClass = true; } if (programElement.ProgramElementType == ProgramElementType.Property) { countProperties++; } } Assert.IsTrue(seenClass); Assert.IsTrue(countProperties == 6); }
public void EnumParserTest() { SrcMLCSharpParser parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); bool hasEnum = false; foreach (var programElement in elements) { if (programElement as EnumElement != null) { EnumElement enumElem = (EnumElement)programElement; Assert.AreEqual(enumElem.Name, "LanguageEnum"); Assert.AreEqual(enumElem.DefinitionLineNumber, 7); Assert.AreEqual(enumElem.Namespace, "Sando.Parser"); Assert.AreEqual(enumElem.Body, "Java C CSharp"); Assert.AreEqual(enumElem.AccessLevel, AccessLevel.Public); Assert.True(enumElem.FullFilePath.EndsWith("TestFiles\\ShortCSharpFile.txt")); hasEnum = true; } } Assert.IsTrue(hasEnum); }
public void CSharpRegionTest() { SrcMLCSharpParser parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\RegionTest.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count == 2); bool hasClass = false, hasMethod = false; foreach (var programElement in elements) { if (programElement as MethodElement != null) { hasMethod = true; } if (programElement as ClassElement != null) { hasClass = true; } } Assert.IsTrue(hasClass && hasMethod); }
public void ParseConstructorTest() { bool hasConstructor = false; var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); foreach (ProgramElement pe in elements) { if (pe is MethodElement) { var methodElement = (MethodElement)pe; if (methodElement.IsConstructor) { hasConstructor = true; Assert.AreEqual(methodElement.Name, "SrcMLGenerator"); Assert.AreEqual(methodElement.DefinitionLineNumber, 21); Assert.AreEqual(methodElement.AccessLevel, AccessLevel.Public); } } } Assert.IsTrue(hasConstructor); }
public void BasicParserTest() { SrcMLCSharpParser parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count > 0); bool hasClass = false, hasMethod = false; foreach (var programElement in elements) { if (programElement as MethodElement != null) { hasMethod = true; } if (programElement as ClassElement != null) { hasClass = true; } Assert.IsTrue(programElement.RawSource != null); } Assert.IsTrue(hasClass && hasMethod); }
public void EnumParserTest() { SrcMLCSharpParser parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); bool hasEnum = false; foreach(var programElement in elements) { if(programElement as EnumElement != null) { EnumElement enumElem = (EnumElement)programElement; Assert.AreEqual(enumElem.Name, "LanguageEnum"); Assert.AreEqual(enumElem.DefinitionLineNumber, 7); Assert.AreEqual(enumElem.Namespace, "Sando.Parser"); Assert.AreEqual(enumElem.Body, "Java C CSharp"); Assert.AreEqual(enumElem.AccessLevel, AccessLevel.Public); Assert.True(enumElem.FullFilePath.EndsWith("TestFiles\\ShortCSharpFile.txt")); hasEnum = true; } } Assert.IsTrue(hasEnum); }
public void ParseMethodTest() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count>0); CheckParseOfShortCSharpFile(elements); }
public void ParseConstructorTest() { bool hasConstructor = false; var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); foreach(ProgramElement pe in elements) { if(pe is MethodElement) { var methodElement = (MethodElement)pe; if(methodElement.IsConstructor) { hasConstructor = true; Assert.AreEqual(methodElement.Name, "SrcMLGenerator"); Assert.AreEqual(methodElement.DefinitionLineNumber, 21); Assert.AreEqual(methodElement.AccessLevel, AccessLevel.Public); } } } Assert.IsTrue(hasConstructor); }
public void ParseClassTest() { bool seenClass = false; var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); Assert.IsNotNull(elements); Assert.IsTrue(elements.Count > 0); foreach(ProgramElement pe in elements) { if(pe is ClassElement) { ClassElement classElem = (ClassElement)pe; if(classElem.Name == "SrcMLGenerator") { seenClass = true; Assert.AreEqual(classElem.DefinitionLineNumber, 14); Assert.AreEqual(classElem.AccessLevel, AccessLevel.Public); Assert.AreEqual(classElem.Namespace, "Sando.Parser"); Assert.True(classElem.FullFilePath.EndsWith("TestFiles\\ShortCSharpFile.txt")); } } } Assert.IsTrue(seenClass); }
public void MethodLinksToClassTest() { return; //NOTE: this test fails because of a bug in srcML //please turn this test back on once we receive a fix //from the srcML guys SrcMLCSharpParser parser = new SrcMLCSharpParser(); var elements = parser.Parse("..\\..\\Parser\\Parser.UnitTests\\TestFiles\\ImageCaptureCS.txt"); ClassElement ImageCaptureClassElement = null; bool foundMethod = false; // first find the class element foreach(ProgramElement pe in elements) { if(pe is ClassElement) { ClassElement cls = (ClassElement)pe; if(cls.Name == "ImageCapture") { ImageCaptureClassElement = cls; } } } // then the method element that should link to it foreach(ProgramElement pe in elements) { if(pe is MethodElement) { MethodElement method = (MethodElement)pe; if(method.Name == "CaptureByHdc") { foundMethod = true; Assert.AreEqual(method.ClassId, ImageCaptureClassElement.Id); Assert.AreEqual(method.ClassName, ImageCaptureClassElement.Name); } } } Assert.IsTrue(foundMethod); }
public void GIVEN_file_with_readonly_and_static_elements_WHEN_parse_method_is_called_THEN_valid_access_levels_are_retrieved() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortCSharpFile.txt"); var readonlyField = elements.OfType<FieldElement>().FirstOrDefault(f => f.Name == "Language"); Assert.IsNotNull(readonlyField); Assert.AreEqual(readonlyField.AccessLevel, AccessLevel.Internal); var staticMethod = elements.OfType<MethodElement>().FirstOrDefault(f => f.Name == "SetSrcMLLocation"); Assert.IsNotNull(staticMethod); Assert.AreEqual(staticMethod.AccessLevel, AccessLevel.Public); }
public void GenerateSrcMLShortestFileTest() { var parser = new SrcMLCSharpParser(generator); var srcML = parser.Parse("TestFiles\\ShortestCSharpFile.txt"); Assert.IsTrue(srcML!=null); }
public static List<ProgramElement> ParseCsharpFile(string filePath) { SrcMLCSharpParser parser = new SrcMLCSharpParser(new ABB.SrcML.SrcMLGenerator(TestUtils.SrcMLDirectory)); var elements = parser.Parse(filePath); return elements; }
public void ParseProperties() { var parser = new SrcMLCSharpParser(generator); var elements = parser.Parse("TestFiles\\ShortInheritance.txt"); bool seenClass = false; int countProperties = 0; foreach (var programElement in elements) { if(programElement.ProgramElementType == ProgramElementType.Class) seenClass = true; if(programElement.ProgramElementType == ProgramElementType.Property) countProperties++; } Assert.IsTrue(seenClass); Assert.IsTrue(countProperties==6); }