static TestBase() { var unoprojfile = AbsoluteDirectoryPath.Parse(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)) / ".." / ".." / ".." / "Outracks.CodeCompletion.UXNinja.TestsCommon" / "TestData" / new FileName("Outracks.UXNinja.Tests.Library.unoproj"); var relativeUnoprojFile = unoprojfile.RelativeTo(DirectoryPath.GetCurrentDirectory()); _editors = new DummyEditorManager(); _project = new Project("Test"); _project.MutablePackageReferences.Clear(); _project.MutableProjectReferences.Clear(); _project.MutableProjectReferences.Add(new ProjectReference(new DummySource(), relativeUnoprojFile.NativeRelativePath)); }
protected void AssertCode(string code, [CallerMemberName] string path = "") { int caret = 0; var assertCodeSnippets = GetAsserts(ref code, ref caret); var ubProject = _project; var filePath = AbsoluteDirectoryPath.Parse(Directory.GetCurrentDirectory()) / new FileName(path); _log = new DummyLogger(); var editors = new DummyEditorManager(); var mainPackage = new PackageCache(new Log(_log.TextWriter), ubProject.Config).GetPackage(ubProject); mainPackage.SetCacheDirectory((AbsoluteDirectoryPath.Parse(mainPackage.CacheDirectory) / new DirectoryName("CodeCompletion")).NativePath); var build = new CodeNinjaBuild(_log, ubProject, editors, mainPackage, mainPackage.References.ToList(), code, filePath); build.Execute(); var engine = new DummyEngine(build.Compiler); var codeCompleter = new CodeCompleter(engine.Compiler, new Source(build.ProjectPackage, filePath.NativePath), new CodeReader(code, caret), caret, Parser.Parse(code)); if (codeCompleter.Context.NodePath.Count < 1) { throw new TestException("Invalid node path was generated for the test case"); } ConfidenceLevel confidenceLevel; var suggestions = codeCompleter.SuggestCompletion("", out confidenceLevel); if (assertCodeSnippets != null) { foreach (var codeSnippet in assertCodeSnippets) { OnAssert(code, codeSnippet, suggestions); } } }
static TestBase() { _editors = new DummyEditorManager(); _project = new Project("Test"); }