public void RelatedClassUseCases() { // positives Assert.IsTrue(RelatedClassHelper.IsRelated(SampleClass, "GreatUtility")); // variable Assert.IsTrue(RelatedClassHelper.IsRelated(SampleClass, "CoolStuff")); // expression Assert.IsTrue(RelatedClassHelper.IsRelated(SampleClass, "Object")); // variable Assert.IsTrue(RelatedClassHelper.IsRelated(SampleClass, "Something")); // property Assert.IsTrue(RelatedClassHelper.IsRelated(SampleClass, "AwesomeStuff")); // expression Assert.IsTrue(RelatedClassHelper.IsRelated(SampleClass, "ThatsPerfect")); // annotation Assert.IsTrue(RelatedClassHelper.IsRelated(SampleClass, "WhatElse")); // parameter // incomplete matches Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "Great")); // partial name Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "Utility")); // partial name Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "Awesome")); // partial name Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "Perfect")); // partial name // negatives Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "IsTest")); // string constant Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "global")); // keyword Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "Hello")); // string constant Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "BadStuff")); // commented out Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "main")); // method name Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "SomethingGreat")); // itself Assert.IsFalse(RelatedClassHelper.IsRelated(SampleClass, "Else")); // property name }
public static List <FileInfo> GetAllRealatedApexFiles(DirectoryInfo apexDir, FileInfo rootApexClassName) { Stack <FileInfo> readFileNames = new Stack <FileInfo>(); readFileNames.Push(rootApexClassName); List <FileInfo> apexFileFound = new List <FileInfo> { rootApexClassName }; while (readFileNames.Count > 0) { // Need the Apex Class with out the .cls var apexClassName = readFileNames.Pop().Name.Replace(".cls", ""); var apexFileList = GetFilesAsFileInfo(apexDir, "*.cls"); foreach (var apexFile in apexFileList) { var rootFile = File.ReadAllText(apexFile.FullName); if (RelatedClassHelper.IsRelated(rootFile, apexClassName)) { apexFileFound.AddItem(apexFile); // Only push files we have not looked at. if (apexFileFound.Contains((FileInfo)apexFile) == false) { readFileNames.Push(apexFile); } } } } return(apexFileFound); }
public void InvalidRelatedClasses() { Assert.DoesNotThrow(() => { Assert.IsFalse(RelatedClassHelper.IsRelated(null, null)); Assert.IsFalse(RelatedClassHelper.IsRelated(null, string.Empty)); Assert.IsFalse(RelatedClassHelper.IsRelated(string.Empty, null)); Assert.IsFalse(RelatedClassHelper.IsRelated(string.Empty, string.Empty)); Assert.IsFalse(RelatedClassHelper.IsRelated(null, " ")); Assert.IsFalse(RelatedClassHelper.IsRelated(" ", null)); Assert.IsFalse(RelatedClassHelper.IsRelated(" ", " ")); }); }