public void AddDirective_CreatesAndAddsToDirectiveFeatureIfItDoesNotExist()
        {
            // Arrange
            var builder           = new DefaultRazorProjectEngineBuilder(RazorConfiguration.Default, Mock.Of <RazorProjectFileSystem>());
            var expectedDirective = Mock.Of <DirectiveDescriptor>();

            // Act
            builder.AddDirective(expectedDirective);

            // Assert
            var feature          = Assert.Single(builder.Features);
            var directiveFeature = Assert.IsAssignableFrom <IRazorDirectiveFeature>(feature);
            var directive        = Assert.Single(directiveFeature.Directives);

            Assert.Same(expectedDirective, directive);
        }
        public void AddDirective_UsesExistingFeatureIfExistsAndAddsTo()
        {
            // Arrange
            var builder          = new DefaultRazorProjectEngineBuilder(RazorConfiguration.Default, Mock.Of <RazorProjectFileSystem>());
            var directiveFeature = new DefaultRazorDirectiveFeature();

            builder.Features.Add(directiveFeature);
            var expecteDirective = Mock.Of <DirectiveDescriptor>();

            // Act
            builder.AddDirective(expecteDirective);

            // Assert
            var feature = Assert.Single(builder.Features);

            Assert.Same(directiveFeature, feature);
            var directive = Assert.Single(directiveFeature.Directives);

            Assert.Same(expecteDirective, directive);
        }