Example #1
0
            public void Custom_directory_must_exist_when_it_is_not_null_or_empty(ChangeLogConfiguration.TemplateName template)
            {
                // ARRANGE
                var config = ChangeLogConfigurationLoader.GetDefaultConfiguration();

                var customDirectoryProperty = config.Template.GetType().GetProperty(template.ToString());
                var templateSettings        = (ChangeLogConfiguration.TemplateSettings)customDirectoryProperty !.GetValue(config.Template) !;

                templateSettings.CustomDirectory = "/Some-Directory";

                var sut = new ConfigurationValidator();

                // ACT
                var result = sut.Validate(config);

                // ASSERT
                Assert.False(result.IsValid);
                Assert.Collection(result.Errors,
                                  error =>
                {
                    Assert.Contains("'Template Custom Directory'", error.ErrorMessage);
                    Assert.Contains("'/Some-Directory'", error.ErrorMessage);
                }
                                  );
            }
Example #2
0
        public void Template_parameter_is_parsed_correctly(string template, ChangeLogConfiguration.TemplateName expected)
        {
            // ARRANGE
            var args = new[] { "--repository", "some-path", "--template", template };

            // ACT
            var result = CommandLineParameters.Parse(args);

            // ASSERT
            Assert.Equal(ParserResultType.Parsed, result.Tag);
            Assert.Equal(typeof(CommandLineParameters), result.TypeInfo.Current);
            result.WithParsed(parsed =>
            {
                Assert.NotNull(parsed.Template);
                Assert.Equal(expected, parsed.Template);
            });
        }
Example #3
0
            public void Custom_directory_is_valid_when_directory_exists(ChangeLogConfiguration.TemplateName template)
            {
                // ARRANGE
                using var temporaryDirectory = new TemporaryDirectory();

                var config = ChangeLogConfigurationLoader.GetDefaultConfiguration();

                var customDirectoryProperty = config.Template.GetType().GetProperty(template.ToString());
                var templateSettings        = (ChangeLogConfiguration.TemplateSettings)customDirectoryProperty !.GetValue(config.Template) !;

                templateSettings.CustomDirectory = temporaryDirectory;

                var sut = new ConfigurationValidator();

                // ACT
                var result = sut.Validate(config);

                // ASSERT
                Assert.True(result.IsValid);
                Assert.Empty(result.Errors);
            }
Example #4
0
            public void Custom_directory_can_be_null_or_empty(
                ChangeLogConfiguration.TemplateName template,
                [CombinatorialValues(null, "")] string customDirectory)
            {
                // ARRANGE
                var config = ChangeLogConfigurationLoader.GetDefaultConfiguration();

                var customDirectoryProperty = config.Template.GetType().GetProperty(template.ToString());
                var templateSettings        = (ChangeLogConfiguration.TemplateSettings)customDirectoryProperty !.GetValue(config.Template) !;

                templateSettings.CustomDirectory = customDirectory;

                var sut = new ConfigurationValidator();

                // ACT
                var result = sut.Validate(config);

                // ASSERT
                Assert.True(result.IsValid);
                Assert.Empty(result.Errors);
            }
Example #5
0
            public void Custom_directory_must_not_be_whitespace(
                ChangeLogConfiguration.TemplateName template,
                [CombinatorialValues("\t", " ")] string customDirectory)
            {
                // ARRANGE
                var config = ChangeLogConfigurationLoader.GetDefaultConfiguration();

                var customDirectoryProperty = config.Template.GetType().GetProperty(template.ToString());
                var templateSettings        = (ChangeLogConfiguration.TemplateSettings)customDirectoryProperty !.GetValue(config.Template) !;

                templateSettings.CustomDirectory = customDirectory;


                var sut = new ConfigurationValidator();

                // ACT
                var result = sut.Validate(config);

                // ASSERT
                Assert.False(result.IsValid);
                Assert.Collection(result.Errors,
                                  error => Assert.Contains("'Template Custom Directory'", error.ErrorMessage)
                                  );
            }
Example #6
0
        public void RegisterTemplate_can_register_a_template_for_every_supported_template_name(ChangeLogConfiguration.TemplateName templateName)
        {
            // ARRANGE
            var configuration = new ChangeLogConfiguration()
            {
                Template = new ChangeLogConfiguration.TemplateConfiguration()
                {
                    Name = templateName
                }
            };

            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterInstance(configuration).SingleInstance();
            containerBuilder.RegisterInstance(NullLogger <DefaultTemplate> .Instance).As <ILogger <DefaultTemplate> >();

            // ACT
            containerBuilder.RegisterTemplate(configuration.Template);

            // ASSERT
            var container = containerBuilder.Build();
            var template  = container.Resolve <ITemplate>();

            Assert.NotNull(template);
        }