Ejemplo n.º 1
0
    public void PopulateFeature_InvokesAllProvidersSequentially_ForAGivenFeature()
    {
        // Arrange
        var manager = new ApplicationPartManager();

        manager.ApplicationParts.Add(new ControllersPart("ControllersPartA"));
        manager.ApplicationParts.Add(new ViewComponentsPart("ViewComponentsPartB"));
        manager.ApplicationParts.Add(new ControllersPart("ControllersPartC"));
        manager.FeatureProviders.Add(
            new ControllersFeatureProvider((f, v) => f.Values.Add($"ControllersFeatureProvider1{v}")));
        manager.FeatureProviders.Add(
            new ControllersFeatureProvider((f, v) => f.Values.Add($"ControllersFeatureProvider2{v}")));

        var feature         = new ControllersFeature();
        var expectedResults = new[]
        {
            "ControllersFeatureProvider1ControllersPartA",
            "ControllersFeatureProvider1ControllersPartC",
            "ControllersFeatureProvider2ControllersPartA",
            "ControllersFeatureProvider2ControllersPartC"
        };

        // Act
        manager.PopulateFeature(feature);

        // Assert
        Assert.Equal(expectedResults, feature.Values.ToArray());
    }
Ejemplo n.º 2
0
    public void PopulateFeature_SkipProviders_ForOtherFeatures()
    {
        // Arrange
        var manager = new ApplicationPartManager();

        manager.ApplicationParts.Add(new ViewComponentsPart("ViewComponentsPart"));
        manager.FeatureProviders.Add(
            new ControllersFeatureProvider((f, v) => f.Values.Add($"ControllersFeatureProvider{v}")));

        var feature = new ControllersFeature();

        // Act
        manager.PopulateFeature(feature);

        // Assert
        Assert.Empty(feature.Values.ToArray());
    }
Ejemplo n.º 3
0
    public void PopulateFeature_InvokesOnlyProviders_ForAGivenFeature()
    {
        // Arrange
        var manager = new ApplicationPartManager();

        manager.ApplicationParts.Add(new ControllersPart("ControllersPart"));
        manager.FeatureProviders.Add(
            new ControllersFeatureProvider((f, v) => f.Values.Add($"ControllersFeatureProvider{v}")));
        manager.FeatureProviders.Add(
            new NotControllersedFeatureProvider((f, v) => f.Values.Add($"ViewComponentsFeatureProvider{v}")));

        var feature         = new ControllersFeature();
        var expectedResults = new[] { "ControllersFeatureProviderControllersPart" };

        // Act
        manager.PopulateFeature(feature);

        // Assert
        Assert.Equal(expectedResults, feature.Values.ToArray());
    }