コード例 #1
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void readtemplatefile_should_read_cultureui_textfile_contents()
        {
            // Arrange
            _applicationSettings.EmailTemplateFolder = AppDomain.CurrentDomain.BaseDirectory;
            string expectedContents = DateTime.UtcNow.ToString();
            string cultureDir       = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "fr-FR");

            if (!Directory.Exists(cultureDir))
            {
                Directory.CreateDirectory(cultureDir);
            }

            string cultureFilePath = Path.Combine(cultureDir, "emailtemplate.txt");

            Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");

            File.WriteAllText(cultureFilePath, expectedContents);
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);

            // Act
            string actualContents = emailTemplate.ReadTemplateFile("emailtemplate.txt");

            // Assert
            Assert.That(actualContents, Is.EqualTo(expectedContents));
        }
コード例 #2
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void should_use_default_smtpclient_when_client_is_null_in_constructor()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, null);

            // Act +  Assert
            Assert.That(emailTemplate.GetEmailClient(), Is.TypeOf <EmailClient>());
        }
コード例 #3
0
ファイル: EmailTemplateTests.cs プロジェクト: 35e8/roadkill
		public void Should_Use_Default_SmtpClient_When_Client_Is_Null_In_Constructor()
		{
			// Arrange
			EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _repository, null);

			// Act +  Assert
			Assert.That(emailTemplate.GetEmailClient(), Is.TypeOf<EmailClient>());
		}
コード例 #4
0
ファイル: EmailTemplateTests.cs プロジェクト: 35e8/roadkill
		public void Send_Should_Throw_EmailException_When_Model_Is_Null()
		{
			// Arrange
			EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _repository, _emailClientMock);
			UserViewModel userModel = null;

			// Act + Assert
			emailTemplate.Send(userModel);
		}
コード例 #5
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void Send_Should_Throw_EmailException_When_Model_Is_Null()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);
            UserViewModel     userModel     = null;

            // Act + Assert
            emailTemplate.Send(userModel);
        }
コード例 #6
0
ファイル: EmailTemplateTests.cs プロジェクト: 35e8/roadkill
		public void Send_Should_Use_EmailClient_To_Send()
		{
			// Arrange
			EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _repository, _emailClientMock);
			UserViewModel userModel = new UserViewModel();
			userModel.ExistingEmail = "someone@localhost";
			userModel.NewEmail = "someone@localhost";

			// Act
			emailTemplate.Send(userModel);

			// Assert
			Assert.That(_emailClientMock.Sent, Is.True);
		}
コード例 #7
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void Send_Should_Throw_EmailException_When_PlainTextView_Is_Empty()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);

            emailTemplate.PlainTextView = "";
            UserViewModel userModel = new UserViewModel();

            userModel.ExistingEmail = "someone@localhost";
            userModel.NewEmail      = "someone@localhost";

            // Act + Assert
            emailTemplate.Send(userModel);
        }
コード例 #8
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void replacetokens_should_replace_all_tokens_from_model()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);
            UserViewModel     userModel     = new UserViewModel();

            userModel.ActivationKey    = "key";
            userModel.ExistingUsername = "******";
            userModel.Firstname        = "firstname";
            userModel.Id               = Guid.NewGuid();
            userModel.Lastname         = "lastname";
            userModel.NewEmail         = "NewEmail";
            userModel.PasswordResetKey = "resetkey";

            SiteSettings siteSettings = new SiteSettings();

            siteSettings.SiteName = "MySite";
            siteSettings.SiteUrl  = "http://www.roadkillwiki.iz.de.biz";
            _settingsRepository.SaveSiteSettings(siteSettings);

            StringBuilder templateBuilder = new StringBuilder();

            templateBuilder.AppendLine("{FIRSTNAME}");
            templateBuilder.AppendLine("{LASTNAME}");
            templateBuilder.AppendLine("{EMAIL}");
            templateBuilder.AppendLine("{USERNAME}");
            templateBuilder.AppendLine("{ACTIVATIONKEY}");
            templateBuilder.AppendLine("{RESETKEY}");
            templateBuilder.AppendLine("{USERID}");
            templateBuilder.AppendLine("{SITENAME}");
            templateBuilder.AppendLine("{SITEURL}");

            StringBuilder expectedContent = new StringBuilder();

            expectedContent.AppendLine(userModel.Firstname);
            expectedContent.AppendLine(userModel.Lastname);
            expectedContent.AppendLine(userModel.NewEmail);
            expectedContent.AppendLine(userModel.NewUsername);
            expectedContent.AppendLine(userModel.ActivationKey);
            expectedContent.AppendLine(userModel.PasswordResetKey);
            expectedContent.AppendLine(userModel.Id.ToString());
            expectedContent.AppendLine(siteSettings.SiteName);
            expectedContent.AppendLine(siteSettings.SiteUrl);

            // Act
            string actualTemplate = emailTemplate.ReplaceTokens(userModel, templateBuilder.ToString());

            // Assert
            Assert.That(actualTemplate, Is.EqualTo(expectedContent.ToString()));
        }
コード例 #9
0
        public void ReadTemplateFile_Should_Read_Textfile_Contents()
        {
            // Arrange
            _applicationSettings.EmailTemplateFolder = AppDomain.CurrentDomain.BaseDirectory;
            string expectedContents = DateTime.UtcNow.ToString();
            string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "emailtemplate.txt");
            File.WriteAllText(path, expectedContents);
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _siteSettings, _emailClientMock);

            // Act
            string actualContents = emailTemplate.ReadTemplateFile("emailtemplate.txt");

            // Assert
            Assert.That(actualContents, Is.EqualTo(expectedContents));
        }
コード例 #10
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void send_should_use_emailclient_to_send()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);
            UserViewModel     userModel     = new UserViewModel();

            userModel.ExistingEmail = "someone@localhost";
            userModel.NewEmail      = "someone@localhost";

            // Act
            emailTemplate.Send(userModel);

            // Assert
            Assert.That(_emailClientMock.Sent, Is.True);
        }
コード例 #11
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void readtemplatefile_should_read_textfile_contents()
        {
            // Arrange
            _applicationSettings.EmailTemplateFolder = AppDomain.CurrentDomain.BaseDirectory;
            string expectedContents = DateTime.UtcNow.ToString();
            string path             = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "emailtemplate.txt");

            File.WriteAllText(path, expectedContents);
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);

            // Act
            string actualContents = emailTemplate.ReadTemplateFile("emailtemplate.txt");

            // Assert
            Assert.That(actualContents, Is.EqualTo(expectedContents));
        }
コード例 #12
0
        public void ReplaceTokens_Should_Replace_All_Tokens_From_Model()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _siteSettings, _emailClientMock);
            UserViewModel userModel = new UserViewModel();
            userModel.ActivationKey = "key";
            userModel.ExistingUsername = "******";
            userModel.Firstname = "firstname";
            userModel.Id = Guid.NewGuid();
            userModel.Lastname = "lastname";
            userModel.NewEmail = "NewEmail";
            userModel.PasswordResetKey = "resetkey";

            _siteSettings.SiteName = "MySite";
            _siteSettings.SiteUrl = "http://www.roadkillwiki.iz.de.biz";

            StringBuilder templateBuilder = new StringBuilder();
            templateBuilder.AppendLine("{FIRSTNAME}");
            templateBuilder.AppendLine("{LASTNAME}");
            templateBuilder.AppendLine("{EMAIL}");
            templateBuilder.AppendLine("{USERNAME}");
            templateBuilder.AppendLine("{ACTIVATIONKEY}");
            templateBuilder.AppendLine("{RESETKEY}");
            templateBuilder.AppendLine("{USERID}");
            templateBuilder.AppendLine("{SITENAME}");
            templateBuilder.AppendLine("{SITEURL}");

            StringBuilder expectedContent = new StringBuilder();
            expectedContent.AppendLine(userModel.Firstname);
            expectedContent.AppendLine(userModel.Lastname);
            expectedContent.AppendLine(userModel.NewEmail);
            expectedContent.AppendLine(userModel.NewUsername);
            expectedContent.AppendLine(userModel.ActivationKey);
            expectedContent.AppendLine(userModel.PasswordResetKey);
            expectedContent.AppendLine(userModel.Id.ToString());
            expectedContent.AppendLine(_siteSettings.SiteName);
            expectedContent.AppendLine(_siteSettings.SiteUrl);

            // Act
            string actualTemplate = emailTemplate.ReplaceTokens(userModel, templateBuilder.ToString());

            // Assert
            Assert.That(actualTemplate, Is.EqualTo(expectedContent.ToString()));
        }
コード例 #13
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void send_should_change_pickupdirectory_to_appdomainroot_when_starting_with_virtualpath_and_deliverytype_is_pickuplocation()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);

            _emailClientMock.PickupDirectoryLocation = "~/App_Data/EmailDrop";
            _emailClientMock.DeliveryMethod          = SmtpDeliveryMethod.SpecifiedPickupDirectory;

            UserViewModel userModel = new UserViewModel();

            userModel.ExistingEmail = "someone@localhost";
            userModel.NewEmail      = "someone@localhost";

            // Act
            emailTemplate.Send(userModel);

            // Assert
            Assert.That(_emailClientMock.PickupDirectoryLocation, Is.StringStarting(AppDomain.CurrentDomain.BaseDirectory));
        }
コード例 #14
0
        public void ReplaceTokens_Should_Get_SiteSettings_From_Repository()
        {
            // Issue #229
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _repository, _emailClientMock);
            UserViewModel userModel = new UserViewModel();

            SiteSettings expectedSettings = new SiteSettings();
            expectedSettings.SiteName = "MySite";
            expectedSettings.SiteUrl = "http://www.roadkillwiki.iz.de.biz";
            _repository.SaveSiteSettings(expectedSettings);

            // Act
            emailTemplate.ReplaceTokens(userModel, "not used");
            SiteSettings actualSettings = emailTemplate.GetSiteSettings();

            // Assert
            Assert.That(actualSettings, Is.EqualTo(expectedSettings));
        }
コード例 #15
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void replacetokens_should_get_sitesettings_from_repository()
        {
            // Issue #229
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);
            UserViewModel     userModel     = new UserViewModel();

            SiteSettings expectedSettings = new SiteSettings();

            expectedSettings.SiteName = "MySite";
            expectedSettings.SiteUrl  = "http://www.roadkillwiki.iz.de.biz";
            _settingsRepository.SaveSiteSettings(expectedSettings);

            // Act
            emailTemplate.ReplaceTokens(userModel, "not used");
            SiteSettings actualSettings = emailTemplate.GetSiteSettings();

            // Assert
            Assert.That(actualSettings, Is.EqualTo(expectedSettings));
        }
コード例 #16
0
        public void ReadTemplateFile_Should_Read_CultureUI_Textfile_Contents()
        {
            // Arrange
            _applicationSettings.EmailTemplateFolder = AppDomain.CurrentDomain.BaseDirectory;
            string expectedContents = DateTime.UtcNow.ToString();
            string cultureDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "fr-FR");
            if (!Directory.Exists(cultureDir))
                Directory.CreateDirectory(cultureDir);

            string cultureFilePath = Path.Combine(cultureDir, "emailtemplate.txt");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");

            File.WriteAllText(cultureFilePath, expectedContents);
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _siteSettings, _emailClientMock);

            // Act
            string actualContents = emailTemplate.ReadTemplateFile("emailtemplate.txt");

            // Assert
            Assert.That(actualContents, Is.EqualTo(expectedContents));
        }
コード例 #17
0
ファイル: EmailTemplateTests.cs プロジェクト: wei772/roadkill
        public void send_should_set_two_alternative_views_with_plaintext_and_html()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _settingsRepository, _emailClientMock);
            UserViewModel     userModel     = new UserViewModel();

            userModel.ExistingEmail = "someone@localhost";
            userModel.NewEmail      = "someone@localhost";

            // Act
            emailTemplate.Send(userModel);

            // Assert
            MailMessage message = _emailClientMock.Message;

            Assert.That(message.AlternateViews.Count, Is.EqualTo(2));

            AlternateView plainView = message.AlternateViews.FirstOrDefault(x => x.ContentType.MediaType == "text/plain");
            AlternateView htmlView  = message.AlternateViews.FirstOrDefault(x => x.ContentType.MediaType == "text/html");

            Assert.That(plainView, Is.Not.Null);
            Assert.That(htmlView, Is.Not.Null);
        }
コード例 #18
0
        public void Send_Should_Throw_EmailException_When_PlainTextView_Is_Empty()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _siteSettings, _emailClientMock);
            emailTemplate.PlainTextView = "";
            UserViewModel userModel = new UserViewModel();
            userModel.ExistingEmail = "someone@localhost";
            userModel.NewEmail = "someone@localhost";

            // Act + Assert
            emailTemplate.Send(userModel);
        }
コード例 #19
0
        public void Send_Should_Throw_EmailException_When_Model_Email_And_NewEmail_Is_Empty()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _siteSettings, _emailClientMock);
            UserViewModel userModel = new UserViewModel();
            userModel.ExistingEmail = null;
            userModel.NewEmail = "";

            // Act + Assert
            emailTemplate.Send(userModel);
        }
コード例 #20
0
        public void Send_Should_Set_Two_Alternative_Views_With_PlainText_And_Html()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _siteSettings, _emailClientMock);
            UserViewModel userModel = new UserViewModel();
            userModel.ExistingEmail = "someone@localhost";
            userModel.NewEmail = "someone@localhost";

            // Act
            emailTemplate.Send(userModel);

            // Assert
            MailMessage message = _emailClientMock.Message;
            Assert.That(message.AlternateViews.Count, Is.EqualTo(2));

            AlternateView plainView = message.AlternateViews.FirstOrDefault(x => x.ContentType.MediaType == "text/plain");
            AlternateView htmlView = message.AlternateViews.FirstOrDefault(x => x.ContentType.MediaType == "text/html");

            Assert.That(plainView, Is.Not.Null);
            Assert.That(htmlView, Is.Not.Null);
        }
コード例 #21
0
        public void Send_Should_Change_PickupDirectory_To_AppDomainRoot_When_Starting_With_VirtualPath_And_DeliveryType_Is_PickupLocation()
        {
            // Arrange
            EmailTemplateStub emailTemplate = new EmailTemplateStub(_applicationSettings, _siteSettings, _emailClientMock);
            _emailClientMock.PickupDirectoryLocation = "~/App_Data/EmailDrop";
            _emailClientMock.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;

            UserViewModel userModel = new UserViewModel();
            userModel.ExistingEmail = "someone@localhost";
            userModel.NewEmail = "someone@localhost";

            // Act
            emailTemplate.Send(userModel);

            // Assert
            Assert.That(_emailClientMock.PickupDirectoryLocation, Is.StringStarting(AppDomain.CurrentDomain.BaseDirectory));
        }