public void Merge_Should_Merge_HandlersAndPrependExtensionHandlers() { // arrange var firstFieldHandler = new QueryableDefaultSortFieldHandler(); var extensionFieldHandler = new MockFieldHandler(); var convention = new MockProvider(x => x.AddFieldHandler(firstFieldHandler)); var extension = new MockProviderExtensions( x => x.AddFieldHandler(extensionFieldHandler)); var context = new ConventionContext( "Scope", new ServiceCollection().BuildServiceProvider(), DescriptorContext.Create()); convention.Initialize(context); extension.Initialize(context); // act extension.Merge(context, convention); // assert Assert.NotNull(convention.DefinitionAccessor); Assert.Collection( convention.DefinitionAccessor !.Handlers, x => Assert.Equal(extensionFieldHandler, x.HandlerInstance), x => Assert.Equal(firstFieldHandler, x.HandlerInstance)); }
public void Merge_Should_Merge_ProviderExtensions() { // arrange var provider1 = new MockProviderExtensions(); var convention = new MockProjectionConvention(x => x.AddProviderExtension(provider1)); var provider2 = new MockProviderExtensions(); var extension = new ProjectionConventionExtension(x => x.AddProviderExtension(provider2)); var context = new ConventionContext( "Scope", new ServiceCollection().BuildServiceProvider(), DescriptorContext.Create()); convention.Initialize(context); extension.Initialize(context); // act extension.Merge(context, convention); // assert Assert.NotNull(convention.DefinitionAccessor); Assert.Collection( convention.DefinitionAccessor !.ProviderExtensions, x => Assert.Equal(provider1, x), x => Assert.Equal(provider2, x)); }