public MailService( IOptions <FsMail> fsMailOptions, StringInterpolationService stringInterpolationService, ISmtpClient smtpClient) { _fsMailOptions = fsMailOptions; _stringInterpolationService = stringInterpolationService; _smtpClient = smtpClient; }
public void InterpolateShouldThrowExceptionOnInvalidKeys() { var emptyKey = "{}"; var nonExistingKey = "{hallo}"; var testObject = CreateTestObject(); var target = new StringInterpolationService(_reflectionService); Assert.ThrowsException <ArgumentNullException>(() => target.Interpolate(emptyKey, testObject)); Assert.ThrowsException <ArgumentNullException>(() => target.Interpolate(emptyKey, nonExistingKey)); }
public void InterpolateShouldEscapeDoubleBracket() { var testObject = CreateTestObject(); var inputValue = "{{TestString}{TestInt}{TestDate}{TestChild.TestString}"; var expected = $"{{{{TestString}}{testObject.TestInt}{testObject.TestDate}{testObject.TestChild.TestString}"; var target = new StringInterpolationService(_reflectionService); var actual = target.Interpolate(inputValue, testObject); Assert.AreEqual(expected, actual); }
public void InterpolateShouldCorrectlyReplaceKeysInString() { var target = new StringInterpolationService(_reflectionService); var testObject = CreateTestObject(); var inputValue = "{TestString}{TestInt}{TestDate}{TestChild.TestString}"; var expected = $"{testObject.TestString}{testObject.TestInt}{testObject.TestDate}{testObject.TestChild.TestString}"; var actual = target.Interpolate(inputValue, testObject); Assert.AreEqual(expected, actual); }
public async Task ShouldSendMail() { var smtpClientMock = new Mock <ISmtpClient>(); smtpClientMock.Setup(x => x.SendMailAsync(It.IsAny <MailMessage>())).Returns(Task.CompletedTask); var interpolationService = new StringInterpolationService(new ReflectionService()); var mailOptionsMock = new OptionsMock <FsMail>(new FsMail { FromAddress = "*****@*****.**", Host = "123", Port = 123 }); var mailService = new MailService(mailOptionsMock, interpolationService, smtpClientMock.Object); var message = new MailMessage <TestModel>("*****@*****.**", "test subject", "test body {Test}", new TestModel()); await mailService.SendMail(message); }