コード例 #1
0
    public void GetGroupedEndpoints_ForwardedToChildDataSources()
    {
        var endpoint            = CreateEndpoint("/a");
        var dataSource          = new TestGroupDataSource(new RouteEndpoint[] { endpoint });
        var compositeDataSource = new CompositeEndpointDataSource(new[] { dataSource });

        var prefix = RoutePatternFactory.Parse("/prefix");
        var applicationServices = new ServiceCollection().BuildServiceProvider();
        var metadata            = new EndpointNameMetadata("name");
        var conventions         = new Action <EndpointBuilder>[]
        {
            b => b.Metadata.Add(metadata),
        };

        var context          = new RouteGroupContext(prefix, conventions, applicationServices);
        var groupedEndpoints = compositeDataSource.GetGroupedEndpoints(context);

        var receivedContext = Assert.Single(dataSource.ReceivedRouteGroupContexts);

        Assert.Same(context, receivedContext);

        var resolvedEndpoint = Assert.IsType <RouteEndpoint>(Assert.Single(groupedEndpoints));

        Assert.Equal("/prefix/a", resolvedEndpoint.RoutePattern.RawText);
        var resolvedMetadata = Assert.Single(resolvedEndpoint.Metadata);

        Assert.Same(metadata, resolvedMetadata);
    }
コード例 #2
0
    public void CreatesShallowCopyOf_ListOfGroupedEndpoints()
    {
        var endpoint1           = CreateEndpoint("/a");
        var endpoint2           = CreateEndpoint("/b");
        var dataSource          = new TestGroupDataSource(new RouteEndpoint[] { endpoint1, endpoint2 });
        var compositeDataSource = new CompositeEndpointDataSource(new[] { dataSource });

        var prefix              = RoutePatternFactory.Parse("/");
        var conventions         = Array.Empty <Action <EndpointBuilder> >();
        var applicationServices = new ServiceCollection().BuildServiceProvider();

        var groupedEndpoints = compositeDataSource.GetGroupedEndpoints(new RouteGroupContext(prefix, conventions, applicationServices));

        var resolvedGroupEndpoints = Assert.Single(dataSource.ResolvedGroupedEndpoints);

        Assert.NotSame(groupedEndpoints, resolvedGroupEndpoints);
        Assert.Equal(groupedEndpoints, resolvedGroupEndpoints);
    }