コード例 #1
0
        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);
        }
コード例 #8
0
        public void DefaultsToMailViewsDirectory()
        {
            var options = new MailTemplateOptions();

            Assert.IsTrue(options.BaseDirectory == "MailViews");
        }
コード例 #9
0
        public void DefaultsToCshtmlExtension()
        {
            var options = new MailTemplateOptions();

            Assert.IsTrue(options.Extension == ".cshtml");
        }
コード例 #10
0
        public void DefaultsToMailViewsNamespace()
        {
            var options = new MailTemplateOptions();

            Assert.IsTrue(options.DefaultNamespace == "MailViews");
        }
コード例 #11
0
 /// <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));
 }
コード例 #12
0
 /// <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);
 }