public void XmlBaseUriHandlingTest() { var testCases = new XmlBaseUriTestCase[] { new XmlBaseUriTestCase { RelativeUri = "relative", XmlBaseUri = "http://odata.org/base", SettingsBaseUri = (string)null, ResultUri = "http://odata.org/relative", }, new XmlBaseUriTestCase { RelativeUri = "relative", XmlBaseUri = (string)null, SettingsBaseUri = (string)null, ResultUri = "http://odata.org/relative", }, new XmlBaseUriTestCase { RelativeUri = "relative", XmlBaseUri = "/baserelative/", SettingsBaseUri = "http://odata.org/base", ResultUri = "http://odata.org/baserelative/relative" }, new XmlBaseUriTestCase { RelativeUri = "relative", XmlBaseUri = string.Empty, SettingsBaseUri = "http://odata.org/", ResultUri = "http://odata.org/relative" }, new XmlBaseUriTestCase { RelativeUri = "relative", XmlBaseUri = "/baserelative/", SettingsBaseUri = "http://odata.org/base/", ResultUri = "http://odata.org/baserelative/relative" }, new XmlBaseUriTestCase { RelativeUri = "relative", XmlBaseUri = string.Empty, SettingsBaseUri = "http://odata.org/base/", ResultUri = "http://odata.org/base/relative" }, }; this.CombinatorialEngineProvider.RunCombinations( testCases, this.ReaderTestConfigurationProvider.AtomFormatConfigurations, TestReaderUtils.ODataBehaviorKinds, (testCase, testConfiguration, behavior) => { IEnumerable<PayloadReaderTestDescriptor> testDescriptors = new PayloadReaderTestDescriptor[] { // MLE with relative media source link new PayloadReaderTestDescriptor(this.Settings) { PayloadElement = PayloadBuilder.Entity().AsMediaLinkEntry().StreamSourceLink(testCase.ComputeExpectedResultUri(behavior, testConfiguration.Version, /*ignoredOnServer*/ true)) .XmlRepresentation("<entry xml:base='" + testCase.XmlBaseUri + "'><content src='" + testCase.RelativeUri +"'/></entry>"), ExpectedException = testCase.ComputeExpectedException(behavior, testConfiguration.Version, /*ignoredOnServer*/ true) }, // Navigation link with relative href new PayloadReaderTestDescriptor(this.Settings) { PayloadElement = PayloadBuilder.Entity() .NavigationProperty("NavLink", testCase.ComputeExpectedResultUri(behavior, testConfiguration.Version, /*ignoredOnServer*/ false)) .XmlRepresentation("<entry xml:base='" + testCase.XmlBaseUri + "'><content /><link rel='http://docs.oasis-open.org/odata/ns/related/NavLink' type='application/atom+xml;type=entry' title='NavLink' href='" + testCase.RelativeUri + "' /></entry>"), ExpectedException = testCase.ComputeExpectedException(behavior, testConfiguration.Version, /*ignoredOnServer*/ false) }, // TODO: Add tests like this for all URLs we can process, including ATOM Metadata ones! }; this.CombinatorialEngineProvider.RunCombinations( testDescriptors, testDescriptor => { // Clone the test configuration and set base URI and behavior. testConfiguration = new ReaderTestConfiguration(testConfiguration); testConfiguration.MessageReaderSettings.BaseUri = testCase.SettingsBaseUri == null ? null : new Uri(testCase.SettingsBaseUri); testConfiguration = testConfiguration.CloneAndApplyBehavior(behavior); testDescriptor.RunTest(testConfiguration); }); }); }
public void SpatialPropertyWithDisabledPrimitiveTypeConversionTest() { IEdmModel testModel = TestModels.BuildTestModel(); var testValues = new object[] { GeographyFactory.Point(10, 20).Build(), GeometryFactory.Point(10, 20).Build() }; IEnumerable<PayloadReaderTestDescriptor> testDescriptors = TestValues.PrimitiveTypes.SelectMany(primitiveTypes => testValues.Select(testValue => { PrimitiveDataType targetType = EntityModelUtils.GetPrimitiveEdmType(primitiveTypes); ODataPayloadElement payloadElement = PayloadBuilder .Property(null, PayloadBuilder.PrimitiveValue(testValue)) .ExpectedPropertyType(targetType); return new PayloadReaderTestDescriptor(this.Settings) { PayloadElement = payloadElement, PayloadEdmModel = testModel }; })); // TODO: Task 1429690:Fix places where we've lost JsonVerbose coverage to add JsonLight this.CombinatorialEngineProvider.RunCombinations( testDescriptors, new bool[] { false, true }, this.ReaderTestConfigurationProvider.ExplicitFormatConfigurations.Where(tc => tc.Format == ODataFormat.Atom), (testDescriptor, disableStrictValidation, testConfig) => { testConfig = new ReaderTestConfiguration(testConfig); testConfig.MessageReaderSettings.DisablePrimitiveTypeConversion = true; if (disableStrictValidation) { testConfig = testConfig.CloneAndApplyBehavior(TestODataBehaviorKind.WcfDataServicesServer); } testDescriptor.RunTest(testConfig); }); }