Beispiel #1
0
        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}");
        }
Beispiel #2
0
        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}]");
                }
            }
        }
Beispiel #3
0
        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}");
        }