public void AreDatesPathValid_WrongPathFromInput_InvalidResult()
        {
            var validation = new ArgumentsValidation(new GitArguments(), validationMock);
            var validator  = validation.AreDatesPathValid(new[]
            {
                "01/01/2018",
                "01/15/2018",
                @"C:\asdasdasd"
            });

            Assert.False(validator);
        }
        public void AreDatesPathValid_SinceDateWrongFormat_InvalidResult()
        {
            var validation = new ArgumentsValidation(new GitArguments(), validationMock);
            var validator  = validation.AreDatesPathValid(new[]
            {
                "01/012/2018",
                "11/15/2018",
                @"C:\git"
            });

            Assert.False(validator);
        }
        public void AreDatesPathValid_BeforeDateMorePrevious_InvalidResult()
        {
            var validation = new ArgumentsValidation(new GitArguments(), validationMock);
            var validator  = validation.AreDatesPathValid(new[]
            {
                "01/01/2018",
                "11/15/2017",
                @"C:\git"
            });

            Assert.False(validator);
        }
Exemple #4
0
        static void Main(string[] args)
        {
            var newArgs = ManageConsoleArguments(args);

            var gitArgument       = new GitArguments();
            var argumentValidator =
                new ArgumentsValidation(gitArgument, new DirectoryValidation());
            var errorHandler = new GitLogErrors(gitArgument);

            while (!argumentValidator.AreDatesPathValid(newArgs))
            {
                newArgs = errorHandler.FixDatePathError(newArgs);
            }

            IJsonConfig jsonConfig    = new JsonConfig();
            var         processRunner = new GitProcess(gitArgument, jsonConfig);
            var         processOutput = processRunner.RunGitLogProcess();

            var reportHandler = new GitReportCreator(jsonConfig);
            var report        = reportHandler.GetReportDictionary(processOutput);

            var reportPresentation = new GitLogPresentation();

            reportPresentation.PresentReport(report);

            string[] ManageConsoleArguments(string[] arguments)
            {
                var dateHandler     = new DateSinceManager();
                var reportArguments = new string[3];
                var today           = DateTime.Today;

                if (arguments.Length == 2)
                {
                    if (Int32.TryParse(arguments[1], out int parsedString))
                    {
                        var enumFromInt = (FromToday)parsedString;
                        reportArguments[0] = dateHandler.GetDateString(enumFromInt);
                    }
                    reportArguments[1] = today.ToString();
                    reportArguments[2] = arguments[0];
                }
                else
                {
                    reportArguments[0] =
                        dateHandler.GetDateString(FromToday.OneDay);
                    reportArguments[1] = today.ToString();
                    reportArguments[2] = "";
                }
                return(reportArguments);
            }
        }
        public void AreDatesPathValid_ArgumentsInOrder_ValidResult()
        {
            var validation = new ArgumentsValidation(new GitArguments(), validationMock);
            var validator  = validation.AreDatesPathValid(new[]
            {
                "01/01/2018",
                "01/15/2018",
                @"C:\git"
            });

            Assert.True(validator);
            Assert.Equal(15, validation.GitArgument.DateBefore.Day);
            Assert.Equal(1, validation.GitArgument.DateBefore.Month);
            Assert.Equal(2018, validation.GitArgument.DateBefore.Year);
            Assert.Equal(1, validation.GitArgument.DateSince.Day);
            Assert.Equal(1, validation.GitArgument.DateSince.Month);
            Assert.Equal(2018, validation.GitArgument.DateSince.Year);
        }