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(); }
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); }