public void GetMetadata_Throws_IfModelIsNotSetOnRequest()
        {
            HttpConfiguration configuration = new HttpConfiguration();
            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();

            Assert.Throws<InvalidOperationException>(
                () => controller.GetMetadata(),
                "The request must have an associated EDM model. Consider using the extension method HttpConfiguration.Routes.MapODataRoute to register a route that parses the OData URI and attaches the model information.");
        }
        public void GetMetadata_Returns_EdmModelFromRequest()
        {
            IEdmModel model = new EdmModel();

            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();
            controller.Request.ODataProperties().Model = model;

            IEdmModel responseModel = controller.GetMetadata();
            Assert.Equal(model, responseModel);
        }
示例#3
0
        public void GetMetadata_Throws_IfModelIsNotSetOnRequest()
        {
            HttpConfiguration       configuration = new HttpConfiguration();
            ODataMetadataController controller    = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();

            Assert.Throws <InvalidOperationException>(
                () => controller.GetMetadata(),
                "The request must have an associated EDM model. Consider using the extension method HttpConfiguration.Routes.MapODataRoute to register a route that parses the OData URI and attaches the model information.");
        }
        public void GetMetadata_Throws_IfModelIsNotSetOnConfiguration_And_ODataFormatterIsNotPresent()
        {
            HttpConfiguration configuration = new HttpConfiguration();
            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            Assert.Throws<InvalidOperationException>(
                () => controller.GetMetadata(),
                "No OData formatter was found to write the OData metadata. Consider registering an appropriate ODataMediaTypeFormatter on the configuration's formatter collection.");
        }
        public void GetMetadata_Throws_IfModelIsNotSetOnConfiguration_And_ODataFormatterIsNotPresent()
        {
            HttpConfiguration configuration = new HttpConfiguration();
            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            Assert.Throws<InvalidOperationException>(
                () => controller.GetMetadata(),
                "The configuration is missing 'IEdmModel'. Try calling 'SetODataFormatter' on 'HttpConfiguration'.");
        }
        public void GetMetadata_Throws_IfModelIsNotSetOnConfiguration_And_ODataFormatterIsNotPresent()
        {
            HttpConfiguration       configuration = new HttpConfiguration();
            ODataMetadataController controller    = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            Assert.Throws <InvalidOperationException>(
                () => controller.GetMetadata(),
                "No OData formatter was found to write the OData metadata. Consider registering an appropriate ODataMediaTypeFormatter on the configuration's formatter collection.");
        }
        public void GetMetadata_Throws_IfModelIsNotSetOnConfiguration_And_ODataFormatterIsNotPresent()
        {
            HttpConfiguration       configuration = new HttpConfiguration();
            ODataMetadataController controller    = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            Assert.Throws <InvalidOperationException>(
                () => controller.GetMetadata(),
                "The configuration is missing 'IEdmModel'. Try calling 'SetODataFormatter' on 'HttpConfiguration'.");
        }
示例#8
0
        public void GetMetadata_Returns_EdmModelFromRequest()
        {
            IEdmModel model = new EdmModel();

            ODataMetadataController controller = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();
            controller.Request.ODataProperties().Model = model;

            IEdmModel responseModel = controller.GetMetadata();

            Assert.Equal(model, responseModel);
        }
        public void GetMetadata_Returns_EdmModelFromSetODataFormatter()
        {
            IEdmModel model = new EdmModel();
            IEnumerable<ODataMediaTypeFormatter> oDataFormatters = ODataMediaTypeFormatters.Create(model);
            HttpConfiguration configuration = new HttpConfiguration();
            configuration.Formatters.InsertRange(0, oDataFormatters);

            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            IEdmModel responseModel = controller.GetMetadata();
            Assert.Equal(model, responseModel);
        }
        public void GetMetadata_Returns_EdmModelFromSetODataFormatter()
        {
            IEdmModel model = new EdmModel();
            ODataMediaTypeFormatter oDataFormatter = new ODataMediaTypeFormatter(model);
            HttpConfiguration configuration = new HttpConfiguration();
            configuration.SetODataFormatter(oDataFormatter);

            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            Assert.Equal(
                model,
                controller.GetMetadata());
        }
        public void GetMetadata_Returns_EdmModelFromSetODataFormatter()
        {
            IEdmModel model = new EdmModel();
            ODataMediaTypeFormatter oDataFormatter = new ODataMediaTypeFormatter(model);
            HttpConfiguration configuration = new HttpConfiguration();
            configuration.Formatters.Insert(0, oDataFormatter);

            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            IEdmModel responseModel;
            Assert.True(controller.GetMetadata().TryGetContentValue<IEdmModel>(out responseModel));
            Assert.Equal(model, responseModel);
        }
        public void GetMetadata_Returns_EdmModelFromSetODataFormatter()
        {
            IEdmModel model = new EdmModel();
            IEnumerable <ODataMediaTypeFormatter> oDataFormatters = ODataMediaTypeFormatters.Create(model);
            HttpConfiguration configuration = new HttpConfiguration();

            configuration.Formatters.InsertRange(0, oDataFormatters);

            ODataMetadataController controller = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            IEdmModel responseModel = controller.GetMetadata();

            Assert.Equal(model, responseModel);
        }
        public void GetMetadata_Returns_EdmModelFromSetODataFormatter()
        {
            IEdmModel model = new EdmModel();
            ODataMediaTypeFormatter oDataFormatter = new ODataMediaTypeFormatter(model);
            HttpConfiguration       configuration  = new HttpConfiguration();

            configuration.SetODataFormatter(oDataFormatter);

            ODataMetadataController controller = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            Assert.Equal(
                model,
                controller.GetMetadata());
        }
示例#14
0
        public void GetMetadata_Doesnot_Change_DataServiceVersion()
        {
            // Arrange
            IEdmModel model = new EdmModel();

            model.SetDataServiceVersion(new Version(0, 42));

            ODataMetadataController controller = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();
            controller.Request.ODataProperties().Model = model;

            // Act
            IEdmModel controllerModel = controller.GetMetadata();

            // Assert
            Assert.Equal(new Version(0, 42), controllerModel.GetDataServiceVersion());
        }
        public void GetMetadata_Returns_EdmModelFromSetODataFormatter()
        {
            IEdmModel model = new EdmModel();
            ODataMediaTypeFormatter oDataFormatter = new ODataMediaTypeFormatter(model);
            HttpConfiguration       configuration  = new HttpConfiguration();

            configuration.Formatters.Insert(0, oDataFormatter);

            ODataMetadataController controller = new ODataMetadataController();

            controller.Request = new HttpRequestMessage();
            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = configuration;

            IEdmModel responseModel;

            Assert.True(controller.GetMetadata().TryGetContentValue <IEdmModel>(out responseModel));
            Assert.Equal(model, responseModel);
        }
示例#16
0
        public async Task GetReturnsCsdlXmlDocument()
        {
            TestHelper.EnsureEDM();

            var controller = new ODataMetadataController();

            controller.Request = new HttpRequestMessage(HttpMethod.Get, "http://services.odata.org/OData/$metadata");
            controller.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());

            var response = controller.Get();

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.True(response.Headers.Contains(ODataHeaderNames.ODataVersion));
            Assert.Equal(ODataHeaderValues.ODataVersionString, response.Headers.GetValues(ODataHeaderNames.ODataVersion).Single());

            var result = await((StringContent)response.Content).ReadAsStringAsync();

            Assert.NotNull(result);
        }
        public void GetMetadata_Doesnot_Change_DataServiceVersion()
        {
            // Arrange
            IEdmModel model = new EdmModel();
            model.SetDataServiceVersion(new Version(0, 42));

            ODataMetadataController controller = new ODataMetadataController();
            controller.Request = new HttpRequestMessage();
            controller.Request.ODataProperties().Model = model;

            // Act
            IEdmModel controllerModel = controller.GetMetadata();

            // Assert
            Assert.Equal(new Version(0, 42), controllerModel.GetDataServiceVersion());
        }