public void Initialize_WhenNoDataExists_CompletesWithoutError()
        {
            var appSettings = new Mock <IConfigurationSettings>(MockBehavior.Strict);

            appSettings.Setup(a => a.GetApplicationSetting(DomainAppSetting, null)).Returns((string)null);
            appSettings.Setup(a => a.GetApplicationSetting(UserRegexAppSetting, null)).Returns((string)null);
            appSettings.Setup(a => a.GetApplicationSetting(UserFixedAppSetting, null)).Returns((string)null);

            var logger = new Mock <ILogger>();

            var transformer = new UsernameTransformer(appSettings.Object, logger.Object);

            transformer.Initalize();

            Assert.AreEqual(0, transformer.DomainRuleCount);

            appSettings.VerifyAll();
        }
        public void GetEmailAddress_WhenDomainAndFixedTransformsExists_ReturnsTranslationInLowerCase()
        {
            var appSettings = new Mock <IConfigurationSettings>(MockBehavior.Strict);

            appSettings.Setup(a => a.GetApplicationSetting(DomainAppSetting, null)).Returns("mycompany\\.com:othercompany.com");
            appSettings.Setup(a => a.GetApplicationSetting(UserRegexAppSetting, null)).Returns((string)null);
            appSettings.Setup(a => a.GetApplicationSetting(UserFixedAppSetting, null)).Returns("bvila:bavila");

            var logger = new Mock <ILogger>();

            var transformer = new UsernameTransformer(appSettings.Object, logger.Object);

            transformer.Initalize();

            var result = transformer.GetEmailAddress("*****@*****.**");

            Assert.AreEqual("*****@*****.**", result);

            appSettings.VerifyAll();
        }
        public void GetEmailAddress_WhenOriginalStringIsMalformedEmail_ReturnsValueInLowerCase()
        {
            var appSettings = new Mock <IConfigurationSettings>(MockBehavior.Strict);

            appSettings.Setup(a => a.GetApplicationSetting(DomainAppSetting, null)).Returns("mycompany\\.com:othercompany.com");
            appSettings.Setup(a => a.GetApplicationSetting(UserRegexAppSetting, null)).Returns((string)null);
            appSettings.Setup(a => a.GetApplicationSetting(UserFixedAppSetting, null)).Returns((string)null);


            var logger = new Mock <ILogger>();

            var transformer = new UsernameTransformer(appSettings.Object, logger.Object);

            transformer.Initalize();

            var result = transformer.GetEmailAddress("FOO@");

            Assert.AreEqual("foo@", result);

            appSettings.VerifyAll();
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Audit Report Builder");
            Console.WriteLine();
            Console.WriteLine("Initializing...");
            Console.WriteLine();

            var config = new ConfigurationSettings();
            var logger = new Logger(false, false);

            var globalOptions = new Options();
            var parser        = GetCommandLineParser(globalOptions);

            var usernameTransformer = new UsernameTransformer(config, logger);
            var buildMatcher        = new RegexReleaseNotesBuildMatcher(logger);
            var octopusProvider     = new OctopusDeploymentProvider(config, logger, buildMatcher, parser, usernameTransformer);

            // Try to parse the command line
            var result = parser.Parse(args);

            if (result.HasErrors)
            {
                Console.WriteLine(result.ErrorText);
                Console.Read();
                return;
            }

            if (result.HelpCalled)
            {
                // triggers the SetupHelp Callback which writes the text to the console
                Console.WriteLine("Press any key to continue ...");
                Console.ReadKey();
                return;
            }

            usernameTransformer.Initalize();
            octopusProvider.Initialize();

            // Get projects
            var projects = octopusProvider.GetProjects();

            // Filter projects if needed
            if (!string.IsNullOrWhiteSpace(globalOptions.ProjectFilter))
            {
                projects = projects.Where(p => p.Name == globalOptions.ProjectFilter).ToList();
            }

            foreach (var project in projects)
            {
                Console.WriteLine();
                logger.WriteInfo($"Checking Deployments for project: {project.Name}\n");
                project.Deployments = octopusProvider.GetProductionDeploymentsForProject(project, globalOptions.StartDate, globalOptions.EndDate)
                                      .Where(d => !d.Errored)
                                      .ToList();

                if (project.Deployments.Count == 0)
                {
                    logger.WriteDebug("No deployments for project, skipping...");
                    continue;
                }
            }

            var reportPath = System.IO.Path.Combine(Environment.CurrentDirectory, string.Format("PipelineReport_{0}", DateTime.Now.ToString("yyyyMMddHHmmssfff")));
            var viewModel  = new DeploymentAuditTemplateViewModel
            {
                EndDate   = globalOptions.EndDate,
                Projects  = projects,
                StartDate = globalOptions.StartDate
            };

            GenerateReportFile(TemplateResources.DeploymentAuditTemplate, reportPath, viewModel, logger, globalOptions.ShowReport);
        }