예제 #1
0
        public void AddODataWithSetup_OnMvcCoreBuilder_RegistersODataOptions()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddLogging();
            IMvcCoreBuilder builder = new MyMvcCoreBuilder
            {
                Services = services
            };

            IEdmModel coreModel = EdmCoreModel.Instance;

            // Act
            builder.AddOData(opt => opt.AddModel("odata", EdmCoreModel.Instance));
            IServiceProvider provider = services.BuildServiceProvider();

            // Assert
            IOptions <ODataOptions> options = provider.GetService <IOptions <ODataOptions> >();

            Assert.NotNull(options);

            ODataOptions odataOptions = options.Value;
            var          model        = Assert.Single(odataOptions.Models);

            Assert.Equal("odata", model.Key);
            Assert.Same(coreModel, model.Value.Item1);
            Assert.NotNull(model.Value.Item2);
        }
        public void AddOData_RegistersODataOptionsWithServiceProvider()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddLogging();
            IEdmModel coreModel = EdmCoreModel.Instance;

            services.AddSingleton(_ => coreModel);
            IMvcCoreBuilder builder = new MyMvcCoreBuilder
            {
                Services = services
            };

            // Act
            builder.AddOData((options, serviceProvider) =>
            {
                var edmModel = serviceProvider.GetRequiredService <IEdmModel>();
                options.AddModel("odata", edmModel);
            });

            IServiceProvider provider = services.BuildServiceProvider();

            // Assert
            IOptions <ODataOptions> options = provider.GetService <IOptions <ODataOptions> >();

            Assert.NotNull(options);

            ODataOptions odataOptions = options.Value;
            var          model        = Assert.Single(odataOptions.Models);

            Assert.Equal("odata", model.Key);
            Assert.Same(coreModel, model.Value.Item1);
            Assert.NotNull(model.Value.Item2);
        }
예제 #3
0
        public void AddOData_Throws_NullSetupActionWithServiceProvider()
        {
            // Arrange
            IMvcCoreBuilder builder = new MyMvcCoreBuilder();
            Action <ODataOptions, IServiceProvider> setupAction = null;

            // Act & Assert
            ExceptionAssert.ThrowsArgumentNull(() => builder.AddOData(setupAction), "setupAction");
        }
예제 #4
0
        public void AddOData_OnMvcCoreBuilder_RegistersODataOptions()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddLogging();
            IMvcCoreBuilder builder = new MyMvcCoreBuilder
            {
                Services = services
            };

            // Act
            builder.AddOData();
            IServiceProvider provider = services.BuildServiceProvider();

            // Assert
            IOptions <ODataOptions> options = provider.GetService <IOptions <ODataOptions> >();

            Assert.NotNull(options);

            ODataOptions odataOptions = options.Value;

            Assert.Empty(odataOptions.Models);
        }