private void PrepareTargetClasses() { MultipleTargetClasses.Clear(); for (var index = 0; index < MultipleSourceClasses.Count; index++) { string sourceClass = MultipleSourceClasses[index]; string testClass = MultipleTestClasses[index]; var classes = sourceClass.GetCodeFileContent().RootNode().ClassNodes(ClassName); foreach (var claz in classes) { MultipleTargetClasses.Add(new TargetClass { ClassName = claz.FullName(), ClassPath = sourceClass, TestClassPath = testClass }); } } }
private void ValidateWholeProject() { var sourceClasses = new FileInfo(SourceProjectParameter).GetProjectFiles(); var testClasses = new FileInfo(TestProjectParameter).GetProjectFiles(); MultipleTargetClasses.Clear(); foreach (string key in sourceClasses.Keys) { var extension = Path.GetExtension(key); if (!string.IsNullOrWhiteSpace(extension)) { var classPath = sourceClasses[key]; var fileName = classPath.Replace(extension, string.Empty); var classes = classPath.GetCodeFileContent().RootNode().DescendantNodes <ClassDeclarationSyntax>().ToList(); foreach (var claz in classes) { var testKey = testClasses.FindKey(claz.ClassName() + ProcessWholeProject); testKey = testKey ?? testClasses.FindKey(fileName + ProcessWholeProject); if (!string.IsNullOrWhiteSpace(testKey)) { MultipleTargetClasses.Add(new TargetClass { ClassName = claz.FullName(), ClassPath = classPath, TestClassPath = testClasses[testKey] }); } } } } if (!MultipleTargetClasses.Any()) { throw new MuTestInputException($"No any class found with matching Test format {ProcessWholeProject}", CliOptions.ProcessWholeProject.ArgumentDescription); } }