private static void ValidateOptions(MailTemplateOptions options) { var validationResult = new MailTemplateOptionsValidator().Validate(options); if (!validationResult.IsValid) { throw new ValidationException(validationResult, typeof(MailServiceOptions), "Invalid settings."); } }
public void NotValidatesEmptyDefaultNamespace() { var options = new MailTemplateOptions { DefaultNamespace = string.Empty, TemplateSource = MailTemplateOptions.MailTemplateSource.File }; var validator = new MailTemplateOptionsValidator(); var result = validator.Validate(options); Assert.IsTrue(result.IsValid); }
public void NotValidatesEmptyBaseDirectory() { var options = new MailTemplateOptions { BaseDirectory = string.Empty, TemplateSource = MailTemplateOptions.MailTemplateSource.Embedded }; var validator = new MailTemplateOptionsValidator(); var result = validator.Validate(options); Assert.IsTrue(result.IsValid); }
public void ValidatesExtensionStartsWithDot() { var options = new MailTemplateOptions { Extension = "cshtml" }; var validator = new MailTemplateOptionsValidator(); var result = validator.Validate(options); var validated = result.Errors.Any(e => e.PropertyName == nameof(MailTemplateOptions.Extension) && e.ErrorCode == PredicateValidator); Assert.IsTrue(validated); }
public void ValidatesEmptyExtension() { var options = new MailTemplateOptions { Extension = string.Empty }; var validator = new MailTemplateOptionsValidator(); var result = validator.Validate(options); var validated = result.Errors.Any(e => e.PropertyName == nameof(MailTemplateOptions.Extension) && e.ResourceName == NotEmptyValidator); Assert.IsTrue(validated); }
public void ValidatesEmptyDefaultNamespace() { var options = new MailTemplateOptions { DefaultNamespace = string.Empty, TemplateSource = MailTemplateOptions.MailTemplateSource.Embedded }; var validator = new MailTemplateOptionsValidator(); var result = validator.Validate(options); var validated = result.Errors.Any(e => e.PropertyName == nameof(MailTemplateOptions.DefaultNamespace) && e.ResourceName == NotEmptyValidator); Assert.IsTrue(validated); }
public void ValidatesEmptyBaseDirectory() { var options = new MailTemplateOptions { BaseDirectory = string.Empty, TemplateSource = MailTemplateOptions.MailTemplateSource.File }; var validator = new MailTemplateOptionsValidator(); var result = validator.Validate(options); var validated = result.Errors.Any(e => e.PropertyName == nameof(MailTemplateOptions.BaseDirectory) && e.ResourceName == NotEmptyValidator); Assert.IsTrue(validated); }
public void DefaultsToMailViewsDirectory() { var options = new MailTemplateOptions(); Assert.IsTrue(options.BaseDirectory == "MailViews"); }
public void DefaultsToCshtmlExtension() { var options = new MailTemplateOptions(); Assert.IsTrue(options.Extension == ".cshtml"); }
public void DefaultsToMailViewsNamespace() { var options = new MailTemplateOptions(); Assert.IsTrue(options.DefaultNamespace == "MailViews"); }
/// <summary>Specialized constructor for use only by derived class.</summary> /// <param name="engine">The engine.</param> /// <param name="options">The options to use.</param> /// <param name="logger">The logger.</param> /// <exception cref="ArgumentNullException">Thrown when one or more required arguments are null.</exception> public RazorLightTemplatingService(IRazorLightEngine engine, MailTemplateOptions options, ILogger <RazorLightTemplatingService> logger) : base(options, logger) { Engine = engine ?? throw new ArgumentNullException(nameof(engine)); }
/// <summary>Initializes a new instance of the <see cref="TemplatingService" /> class.</summary> /// <param name="options">The options.</param> /// <param name="logger">The logger.</param> /// <exception cref="ArgumentNullException">options</exception> protected TemplatingService(MailTemplateOptions options, ILogger <TemplatingService> logger) { Logger = logger; // we accept null here _options = options ?? throw new ArgumentNullException(nameof(options)); ValidateOptions(options); }