public void Correctly_creates_new_application_instance_if_existing_instance_does_not_exist() { ApplicationInstance instance = new ApplicationInstance(); MockRepository mocks = new MockRepository(); ISystemEnvironment environment = mocks.CreateMock <ISystemEnvironment>(); IConfigurationReader configurationReader = mocks.CreateMock <IConfigurationReader>(); IApplicationInstanceRepository repository = mocks.CreateMock <IApplicationInstanceRepository>(); IApplicationInstanceFactory factory = mocks.CreateMock <IApplicationInstanceFactory>(); using (mocks.Record()) { Expect.Call(environment.GetMachineName()).Return("MyMachine"); Expect.Call(configurationReader.GetRequiredSetting("TarantinoWebManagementHttpHost")).Return("www.myapp.com"); Expect.Call(repository.GetByMaintenanceHostHeaderAndMachineName("www.myapp.com", "MyMachine")).Return(null); Expect.Call(factory.Create()).Return(instance); repository.Save(instance); } using (mocks.Playback()) { ICurrentApplicationInstanceRetriever retriever = new CurrentApplicationInstanceRetriever(environment, configurationReader, repository, factory); Assert.That(retriever.GetApplicationInstance(), Is.SameAs(instance)); } mocks.VerifyAll(); }
public void Creates_new_application_instance() { MockRepository mocks = new MockRepository(); ISystemEnvironment systemEnvironment = mocks.CreateMock <ISystemEnvironment>(); IAssemblyContext context = mocks.CreateMock <IAssemblyContext>(); IConfigurationReader configurationReader = mocks.CreateMock <IConfigurationReader>(); using (mocks.Record()) { Expect.Call(context.GetAssemblyVersion()).Return("1.0"); Expect.Call(systemEnvironment.GetMachineName()).Return("MyMachine"); Expect.Call(configurationReader.GetRequiredSetting("TarantinoWebManagementHttpHost")).Return("www.myapp.com"); } using (mocks.Playback()) { IApplicationInstanceFactory factory = new ApplicationInstanceFactory(systemEnvironment, context, configurationReader); ApplicationInstance instance = factory.Create(); Assert.That(instance.AvailableForLoadBalancing, Is.True); Assert.That(instance.MachineName, Is.EqualTo("MyMachine")); Assert.That(instance.Version, Is.EqualTo("1.0")); Assert.That(instance.MaintenanceHostHeader, Is.EqualTo("www.myapp.com")); Assert.That(instance.ApplicationDomain, Is.EqualTo("www.myapp.com")); } mocks.VerifyAll(); }
public bool CurrentUrlIsExternal() { string applicationHostFromConfigFile = _configurationReader.GetRequiredSetting("TarantinoWebManagementHttpHost"); string hostFromRequest = _context.GetServerVariable("HTTP_HOST"); bool isExternalUrl = applicationHostFromConfigFile.ToLower() == hostFromRequest.ToLower(); return(isExternalUrl); }
public ApplicationInstance GetApplicationInstance() { string machineName = _environment.GetMachineName(); string applicationDomainName = _configurationReader.GetRequiredSetting("TarantinoWebManagementHttpHost"); ApplicationInstance instance = _repository.GetByMaintenanceHostHeaderAndMachineName(applicationDomainName, machineName); if (instance == null) { instance = _factory.Create(); _repository.Save(instance); } return(instance); }
public MailMessage CreateEmail(string recipientEmailAddress, string clearTextPassword) { MailMessage mailMessage = new MailMessage(); string from = _configurationReader.GetRequiredSetting("SmtpFromAddress"); mailMessage.From = new MailAddress(from); mailMessage.To.Add(recipientEmailAddress); mailMessage.Subject = "Your forgotten password"; mailMessage.Body = string.Format("Your password is {0}", clearTextPassword); return(mailMessage); }
public ApplicationInstance Create() { string hostHeader = _configurationReader.GetRequiredSetting("TarantinoWebManagementHttpHost"); ApplicationInstance instance = new ApplicationInstance(); instance.MachineName = _systemEnvironment.GetMachineName(); instance.AvailableForLoadBalancing = true; instance.Version = _assemblyContext.GetAssemblyVersion(); instance.MaintenanceHostHeader = hostHeader; instance.ApplicationDomain = hostHeader; return(instance); }
public void RedirectToMaintenancePageIfAppropriate() { try { bool redirect = _checker.ShouldBeRedirectedToMaintenancePage(); if (redirect) { string maintenancePageUrl = _configurationReader.GetRequiredSetting("TarantinoWebManagementMaintenancePage"); _context.ServerTransfer(maintenancePageUrl, false); } } catch { } }
public void Should_read_smtp_password() { MockRepository mocks = new MockRepository(); IConfigurationReader reader = mocks.CreateMock <IConfigurationReader>(); using (mocks.Record()) { Expect.Call(reader.GetRequiredSetting("SmtpPassword")).Return("mypass"); } using (mocks.Playback()) { IApplicationSettings settings = new ApplicationSettings(reader); Assert.That(settings.GetSmtpPassword(), Is.EqualTo("mypass")); } }
public void Determines_that_url_is_internal_when_application_domain_names_match_except_for_casing() { MockRepository mocks = new MockRepository(); IWebContext context = mocks.CreateMock <IWebContext>(); IConfigurationReader configurationReader = mocks.CreateMock <IConfigurationReader>(); using (mocks.Record()) { Expect.Call(context.GetServerVariable("HTTP_HOST")).Return("www1.myapp.com"); Expect.Call(configurationReader.GetRequiredSetting("TarantinoWebManagementHttpHost")).Return("www.MyApp.com"); } using (mocks.Playback()) { IExternalUrlChecker urlChecker = new ExternalUrlChecker(context, configurationReader); Assert.That(urlChecker.CurrentUrlIsExternal(), Is.False); } }
public void Does_not_redirect_if_an_exception_takes_place() { MockRepository mocks = new MockRepository(); IConfigurationReader reader = mocks.CreateMock <IConfigurationReader>(); IMaintenanceRedirectionChecker checker = mocks.CreateMock <IMaintenanceRedirectionChecker>(); using (mocks.Record()) { Expect.Call(checker.ShouldBeRedirectedToMaintenancePage()).Return(true); Expect.Call(reader.GetRequiredSetting("TarantinoWebManagementMaintenancePage")).Throw(new Exception()); } using (mocks.Playback()) { IMaintenancePageRedirector redirector = new MaintenancePageRedirector(null, reader, checker); redirector.RedirectToMaintenancePageIfAppropriate(); } }
public void Does_redirect_if_appropriate() { MockRepository mocks = new MockRepository(); IWebContext context = mocks.CreateMock <IWebContext>(); IConfigurationReader reader = mocks.CreateMock <IConfigurationReader>(); IMaintenanceRedirectionChecker checker = mocks.CreateMock <IMaintenanceRedirectionChecker>(); using (mocks.Record()) { Expect.Call(checker.ShouldBeRedirectedToMaintenancePage()).Return(true); Expect.Call(reader.GetRequiredSetting("TarantinoWebManagementMaintenancePage")).Return("DownForMaintenance.aspx"); context.ServerTransfer("DownForMaintenance.aspx", false); } using (mocks.Playback()) { IMaintenancePageRedirector redirector = new MaintenancePageRedirector(context, reader, checker); redirector.RedirectToMaintenancePageIfAppropriate(); } }
public void Should_construct_forgotten_password_email() { MockRepository mocks = new MockRepository(); IConfigurationReader reader = mocks.CreateMock <IConfigurationReader>(); using (mocks.Record()) { Expect.Call(reader.GetRequiredSetting("SmtpFromAddress")).Return("*****@*****.**"); } using (mocks.Playback()) { IForgottenPasswordMailFactory factory = new ForgottenPasswordMailFactory(reader); MailMessage message = factory.CreateEmail("*****@*****.**", "clearTextPassword"); Assert.That(message.Subject, Is.EqualTo("Your forgotten password")); Assert.That(message.Body, Is.EqualTo("Your password is clearTextPassword")); Assert.That(message.From.Address, Is.EqualTo("*****@*****.**")); Assert.That(message.To.Count, Is.EqualTo(1)); Assert.That(message.To[0].Address, Is.EqualTo("*****@*****.**")); } mocks.VerifyAll(); }
public string GetSmtpServer() { string setting = _configurationReader.GetRequiredSetting("SmtpServer"); return(setting); }