示例#1
0
        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
                    });
                }
            }
        }
示例#2
0
        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);
            }
        }