private void ValidateTestClasses() { if (!string.IsNullOrWhiteSpace(TestClassParameter) && !MultipleTestClasses.Any()) { MultipleSourceClasses .ForEach(x => MultipleTestClasses.Add(TestClassParameter)); return; } var isAllClassesFound = true; var testClasses = new List <string>(); foreach (var testClass in MultipleTestClasses) { var classes = new FileInfo(TestProjectParameter).GetProjectFiles(); var file = classes.FindKey(testClass); if (!string.IsNullOrWhiteSpace(file)) { var path = new FileInfo(classes[file]); if (path.Exists) { testClasses.Add(path.FullName); } else { isAllClassesFound = false; break; } } else { isAllClassesFound = false; break; } } if (isAllClassesFound) { MultipleTestClasses.Clear(); MultipleTestClasses.AddRange(testClasses); return; } throw new MuTestInputException(ErrorMessage, $"One or more Test class file(s) (.cs) are not exist. {CliOptions.MultipleTestClasses.ArgumentDescription}"); }
private void ValidateRequiredParameters() { if (string.IsNullOrWhiteSpace(SourceProjectParameter) || !SourceProjectParameter.EndsWith(".csproj") || !File.Exists(SourceProjectParameter)) { throw new MuTestInputException(ErrorMessage, $"The Source Project File (.csproj) is required. Valid Options are {CliOptions.SourceProject.ArgumentShortName}"); } if (string.IsNullOrWhiteSpace(TestProjectParameter) || !TestProjectParameter.EndsWith(".csproj") || !File.Exists(TestProjectParameter) ) { throw new MuTestInputException(ErrorMessage, $"The Test Project File (.csproj) is required. Valid Options are {CliOptions.TestProject.ArgumentShortName}"); } if (string.IsNullOrWhiteSpace(ProcessWholeProject)) { if (string.IsNullOrWhiteSpace(ClassName) && !MultipleSourceClasses.Any()) { throw new MuTestInputException(ErrorMessage, $"Source class file name or fully qualified name is required. Valid Options are {CliOptions.SourceClass.ArgumentShortName} or process whole project using {CliOptions.ProcessWholeProject.ArgumentShortName}"); } if (string.IsNullOrWhiteSpace(TestClassParameter) && !MultipleTestClasses.Any()) { throw new MuTestInputException(ErrorMessage, $"Test class file name (.cs) is required. Valid Options are {CliOptions.TestClass.ArgumentShortName}"); } if (string.IsNullOrWhiteSpace(TestClassParameter) && MultipleSourceClasses.Count != MultipleTestClasses.Count) { throw new MuTestInputException(ErrorMessage, $"Number of source Classes Should be equal to number of test classes Count[{CliOptions.MultipleSourceClasses.ArgumentShortName}] = Count[{CliOptions.MultipleTestClasses.ArgumentShortName}]"); } } }
private void ValidateTestClass() { if (File.Exists(TestClassParameter) || MultipleTestClasses.Any()) { return; } var classes = new FileInfo(TestProjectParameter).GetProjectFiles(); var file = classes.FindKey(TestClassParameter); if (!string.IsNullOrWhiteSpace(file)) { var path = new FileInfo(classes[file]); if (path.Exists) { TestClassParameter = path.FullName; return; } } throw new MuTestInputException(ErrorMessage, $"Test class file (.cs) is not exist. {CliOptions.TestClass.ArgumentDescription}"); }