Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }