public void Merge_Should_Merge_ProviderExtensions() { // arrange var provider1 = new MockProviderExtensions(); var convention = new MockSortConvention(x => x.AddProviderExtension(provider1)); var provider2 = new MockProviderExtensions(); var extension = new SortConventionExtension(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)); }
public void Merge_Should_DeepMerge_EnumConfigurations() { // arrange var convention = new MockSortConvention( x => x.ConfigureEnum <DefaultSortEnumType>(d => d.Name("Foo"))); var extension = new SortConventionExtension( x => x.ConfigureEnum <DefaultSortEnumType>(d => d.Name("Foo"))); 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); List <ConfigureSortEnumType> configuration = Assert.Single(convention.DefinitionAccessor !.EnumConfigurations.Values) !; Assert.Equal(2, configuration.Count); }
public void Merge_Should_Merge_Provider() { // arrange var convention = new MockSortConvention(x => x.Provider <QueryableSortProvider>()); var extension = new SortConventionExtension(x => x.Provider <MockProvider>()); var context = new ConventionContext( "Scope", new ServiceCollection().BuildServiceProvider(), DescriptorContext.Create()); convention.Initialize(context); extension.Initialize(context); // act extension.Merge(context, convention); // assert Assert.Equal(typeof(MockProvider), convention.DefinitionAccessor?.Provider); }
public void Merge_Should_Merge_ArgumentName() { // arrange var convention = new MockSortConvention(x => x.ArgumentName("Foo")); var extension = new SortConventionExtension(x => x.ArgumentName("Bar")); var context = new ConventionContext( "Scope", new ServiceCollection().BuildServiceProvider(), DescriptorContext.Create()); convention.Initialize(context); extension.Initialize(context); // act extension.Merge(context, convention); // assert Assert.Equal("Bar", convention.DefinitionAccessor?.ArgumentName); }
public void Merge_Should_Merge_Configurations() { // arrange var convention = new MockSortConvention( x => x.Configure <SortInputType <Foo> >(d => d.Name("Foo"))); var extension = new SortConventionExtension( x => x.Configure <SortInputType <Bar> >(d => d.Name("Foo"))); 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.Equal(2, convention.DefinitionAccessor !.Configurations.Count); }
public void Merge_Should_Merge_Bindings() { // arrange var convention = new MockSortConvention( x => x.BindRuntimeType <int, DefaultSortEnumType>()); var extension = new SortConventionExtension( x => x.BindRuntimeType <double, DefaultSortEnumType>()); 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.Contains(typeof(int), convention.DefinitionAccessor !.Bindings); Assert.Contains(typeof(double), convention.DefinitionAccessor !.Bindings); }
public void Merge_Should_Merge_DefaultBinding() { // arrange var convention = new MockSortConvention( x => x.DefaultBinding <DefaultSortEnumType>()); var extension = new SortConventionExtension( x => x.DefaultBinding <MockSortEnumType>()); var context = new ConventionContext( "Scope", new ServiceCollection().BuildServiceProvider(), DescriptorContext.Create()); convention.Initialize(context); extension.Initialize(context); // act extension.Merge(context, convention); // assert Assert.Equal( typeof(MockSortEnumType), convention.DefinitionAccessor?.DefaultBinding); }