예제 #1
0
        static void ResourceFileTestInGerman()
        {
            var queue = new InMemoryMailQueue();

            var senderx = new MailSenderService(queue);

            var generator = new MailGeneratorService(queue, mailSenderService: senderx, async: false);

            var loader = new ResourceFileTemplateRepository(new DefaultResourceManagerAdapter(Templates.ResourceManager));

            loader.EnumerateTemplates(generator.Register);

            dynamic recipient = new ExpandoObject();

            recipient.email    = "*****@*****.**";
            recipient.fullname = "Bob";
            recipient.userid   = "baxtor";

            dynamic data = new ExpandoObject();

            data.link = "http://www.google.com";
            data.name = "Google";

            generator.Send(recipient, "Welcome", data, language: CultureInfo.CreateSpecificCulture("de-AT"));
        }
예제 #2
0
        public void InvalidCultureThrowsException()
        {
            // ARRANGE
            var resMgrMock = new Mock <IResourceManager>();

            var configMock = new Mock <IConfiguration>();

            configMock.Setup(m => m.GetValue(ResourceFileTemplateRepository.APP_KEY_DEFLANG))
            .Returns(@"does-not-exist-as-a-culture");

            // ACT
            var queue = new ResourceFileTemplateRepository(
                configuration: configMock.Object,
                resMgr: resMgrMock.Object);

            // ASSERT
        }
예제 #3
0
        public void Enumerate_LoadsTextKeysCorrectly()
        {
            // ARRANGE
            var cultureEN = CultureInfo.CreateSpecificCulture("en-US");
            var cultureDE = CultureInfo.CreateSpecificCulture("de-DE");
            var cultureFR = CultureInfo.CreateSpecificCulture("fr-FR");
            var cultures  = new CultureInfo[] { cultureEN, cultureDE, cultureFR };

            var keys = new string[] {
                "tmpl1_body_text",
                "tmpl1_subject_text",
                "tmpl1_summarysubject_text",
                "tmpl1_summarybody_text",
                "tmpl1_summaryheader_text",
                "tmpl1_summaryfooter_text",

                "tmpl2_body_text",
                "tmpl2_subject_text",
                "tmpl2_summarysubject_text",
                "tmpl2_summarybody_text",
                "tmpl2_summaryheader_text",
                "tmpl2_summaryfooter_text",

                "tmpl3_body_text",
                "tmpl3_subject_text",
                "tmpl3_summarysubject_text",
                "tmpl3_summarybody_text",
                "tmpl3_summaryheader_text",
                "tmpl3_summaryfooter_text",
            };

            var resMgrMock = new Mock <IResourceManager>();

            resMgrMock.Setup(m => m.GetAvailableCultures()).Returns(cultures);
            resMgrMock.Setup(m => m.GetKeys(It.Is <CultureInfo>(c => c == null))).Returns(keys);
            resMgrMock.Setup(m => m.GetString(
                                 It.Is <string>(s => keys.Contains(s)),
                                 It.Is <CultureInfo>(c => c.Equals(cultureEN) || c.Equals(cultureDE) || c.Equals(cultureFR)))
                             )
            .Returns <string, CultureInfo>((key, ci) => $"test-text-{key}-{ci.TwoLetterISOLanguageName}");

            var configMock = new Mock <IConfiguration>();

            configMock.Setup(m => m.GetValue(ResourceFileTemplateRepository.APP_KEY_DEFLANG))
            .Returns("en-US");

            // ACT
            var queue = new ResourceFileTemplateRepository(
                configuration: configMock.Object,
                resMgr: resMgrMock.Object);

            var templates = new List <Template>();

            queue.EnumerateTemplates(templates.Add);

            // ASSERT
            Assert.AreEqual(9, templates.Count);

            var firstTemplate = templates[0];

            Assert.AreEqual(firstTemplate.Key, "tmpl1");
            Assert.AreEqual(firstTemplate.Language, cultureEN);
            Assert.AreEqual(firstTemplate.Content.Subject, "test-text-tmpl1_subject_text-en");
            Assert.AreEqual(firstTemplate.Content.TextBody, "test-text-tmpl1_body_text-en");

            Assert.AreEqual(firstTemplate.Content.SummarySubject, "test-text-tmpl1_summarysubject_text-en");
            Assert.AreEqual(firstTemplate.Content.SummaryTextBody, "test-text-tmpl1_summarybody_text-en");
            Assert.AreEqual(firstTemplate.Content.SummaryTextFooter, "test-text-tmpl1_summaryfooter_text-en");
            Assert.AreEqual(firstTemplate.Content.SummaryTextHeader, "test-text-tmpl1_summaryheader_text-en");

            Assert.AreEqual(firstTemplate.Content.Body, null);
            Assert.AreEqual(firstTemplate.Content.SummaryBody, null);
            Assert.AreEqual(firstTemplate.Content.SummaryFooter, null);
            Assert.AreEqual(firstTemplate.Content.SummaryHeader, null);


            var secondTemplate = templates[1];

            Assert.AreEqual(secondTemplate.Key, "tmpl2");
            Assert.AreEqual(secondTemplate.Language, cultureEN);
            Assert.AreEqual(secondTemplate.Content.Subject, "test-text-tmpl2_subject_text-en");
            Assert.AreEqual(secondTemplate.Content.TextBody, "test-text-tmpl2_body_text-en");

            Assert.AreEqual(secondTemplate.Content.SummarySubject, "test-text-tmpl2_summarysubject_text-en");
            Assert.AreEqual(secondTemplate.Content.SummaryTextBody, "test-text-tmpl2_summarybody_text-en");
            Assert.AreEqual(secondTemplate.Content.SummaryTextFooter, "test-text-tmpl2_summaryfooter_text-en");
            Assert.AreEqual(secondTemplate.Content.SummaryTextHeader, "test-text-tmpl2_summaryheader_text-en");

            var thirdTemplate = templates[2];

            Assert.AreEqual(thirdTemplate.Key, "tmpl3");
            Assert.AreEqual(thirdTemplate.Language, cultureEN);
            Assert.AreEqual(thirdTemplate.Content.Subject, "test-text-tmpl3_subject_text-en");
            Assert.AreEqual(thirdTemplate.Content.TextBody, "test-text-tmpl3_body_text-en");

            Assert.AreEqual(thirdTemplate.Content.SummarySubject, "test-text-tmpl3_summarysubject_text-en");
            Assert.AreEqual(thirdTemplate.Content.SummaryTextBody, "test-text-tmpl3_summarybody_text-en");
            Assert.AreEqual(thirdTemplate.Content.SummaryTextFooter, "test-text-tmpl3_summaryfooter_text-en");
            Assert.AreEqual(thirdTemplate.Content.SummaryTextHeader, "test-text-tmpl3_summaryheader_text-en");

            var fourthTemplate = templates[3];

            Assert.AreEqual(fourthTemplate.Key, "tmpl1");
            Assert.AreEqual(fourthTemplate.Language, cultureDE);
            Assert.AreEqual(fourthTemplate.Content.Subject, "test-text-tmpl1_subject_text-de");
            Assert.AreEqual(fourthTemplate.Content.TextBody, "test-text-tmpl1_body_text-de");

            Assert.AreEqual(fourthTemplate.Content.SummarySubject, "test-text-tmpl1_summarysubject_text-de");
            Assert.AreEqual(fourthTemplate.Content.SummaryTextBody, "test-text-tmpl1_summarybody_text-de");
            Assert.AreEqual(fourthTemplate.Content.SummaryTextFooter, "test-text-tmpl1_summaryfooter_text-de");
            Assert.AreEqual(fourthTemplate.Content.SummaryTextHeader, "test-text-tmpl1_summaryheader_text-de");
        }