public void RequestDeltaLink_Projection() { var customersSet = Model.FindDeclaredEntitySet("Customers"); var cutomerType = customersSet.EntityType(); ODataMessageReaderSettings readerSettings = new ODataMessageReaderSettings() { BaseUri = ServiceBaseUri }; foreach (var mimeType in deltaMimeTypes) { var requestMessage = new HttpWebRequestMessage(new Uri(ServiceBaseUri.AbsoluteUri + "$delta?$token=projection", UriKind.Absolute)); requestMessage.SetHeader("Accept", mimeType); var responseMessage = requestMessage.GetResponse(); Assert.Equal(200, responseMessage.StatusCode); if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { using (var messageReader = new ODataMessageReader(responseMessage, readerSettings, Model)) { var deltaReader = messageReader.CreateODataDeltaReader(customersSet, cutomerType); while (deltaReader.Read()) { if (deltaReader.State == ODataDeltaReaderState.DeltaResourceEnd) { ODataResource entry = deltaReader.Item as ODataResource; } } Assert.Equal(ODataDeltaReaderState.Completed, deltaReader.State); } } } }
public void RequestDeltaLink_Expanded() { var customersSet = Model.FindDeclaredEntitySet("Customers"); var customerType = customersSet.EntityType(); ODataMessageReaderSettings readerSettings = new ODataMessageReaderSettings() { BaseUri = ServiceBaseUri }; foreach (var mimeType in deltaMimeTypes) { var requestMessage = new HttpWebRequestMessage(new Uri(ServiceBaseUri.AbsoluteUri + "$delta?$token=expanded", UriKind.Absolute)); requestMessage.SetHeader("Accept", mimeType); var responseMessage = requestMessage.GetResponse(); Assert.AreEqual(200, responseMessage.StatusCode); // Currently don't test full metadata because the delta reader doesn't support reading // annotations on expanded navigation properties, metadata reference properties and paging. if (mimeType.Contains(MimeTypes.ODataParameterMinimalMetadata)) { using (var messageReader = new ODataMessageReader(responseMessage, readerSettings, Model)) { var deltaReader = messageReader.CreateODataDeltaReader(customersSet, customerType); while (deltaReader.Read()) { if (deltaReader.State == ODataDeltaReaderState.FeedEnd) { Assert.IsNotNull(deltaReader.Item as ODataDeltaFeed); } else if (deltaReader.State == ODataDeltaReaderState.DeltaEntryEnd) { Assert.IsNotNull(deltaReader.Item as ODataEntry); } else if (deltaReader.State == ODataDeltaReaderState.ExpandedNavigationProperty) { switch (deltaReader.SubState) { case ODataReaderState.FeedEnd: Assert.IsNotNull(deltaReader.Item as ODataFeed); break; case ODataReaderState.EntryEnd: Assert.IsNotNull(deltaReader.Item as ODataEntry); break; case ODataReaderState.NavigationLinkEnd: Assert.IsNotNull(deltaReader.Item as ODataNavigationLink); break; } } } Assert.AreEqual(ODataDeltaReaderState.Completed, deltaReader.State); } } } }
public void RequestDeltaLink_Containment() { var accountsSet = this.Model.FindDeclaredEntitySet("Accounts"); var accountType = accountsSet.EntityType(); var myPisNav = accountType.FindProperty("MyPaymentInstruments") as IEdmNavigationProperty; var piSet = accountsSet.FindNavigationTarget(myPisNav) as IEdmEntitySetBase; var piType = piSet.EntityType(); ODataMessageReaderSettings readerSettings = new ODataMessageReaderSettings() { BaseUri = ServiceBaseUri }; foreach (var mimeType in deltaMimeTypes) { var requestMessage = new HttpWebRequestMessage(new Uri(ServiceBaseUri.AbsoluteUri + "$delta?$token=containment", UriKind.Absolute)); requestMessage.SetHeader("Accept", mimeType); var responseMessage = requestMessage.GetResponse(); Assert.Equal(200, responseMessage.StatusCode); if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { using (var messageReader = new ODataMessageReader(responseMessage, readerSettings, Model)) { var deltaReader = messageReader.CreateODataDeltaReader(piSet, piType); while (deltaReader.Read()) { if (deltaReader.State == ODataDeltaReaderState.DeltaResourceEnd) { ODataResource entry = deltaReader.Item as ODataResource; } } Assert.Equal(ODataDeltaReaderState.Completed, deltaReader.State); } } } }