internal static void InlineEntryInstanceAnnotationTest(string payload, string contentType, bool isResponse, bool shouldReadAndValidateCustomInstanceAnnotations = true, bool enableReadingODataAnnotationWithoutPrefix = false) { ODataResource entryFromReader = null; int depth = 0; using (var messageReader = CreateODataMessageReader(payload, contentType, isResponse, shouldReadAndValidateCustomInstanceAnnotations, enableReadingODataAnnotationWithoutPrefix)) { var odataReader = messageReader.CreateODataResourceReader(EntitySet, EntityType); while (odataReader.Read()) { switch (odataReader.State) { case ODataReaderState.NestedResourceInfoStart: depth++; break; case ODataReaderState.NestedResourceInfoEnd: depth--; break; case ODataReaderState.ResourceStart: if (depth == 1) { entryFromReader = (ODataResource)odataReader.Item; ValidateContainsAllExpectedInstanceAnnotationsBeforeStateChange(entryFromReader.InstanceAnnotations, shouldReadAndValidateCustomInstanceAnnotations); } else { ((ODataResource)odataReader.Item).InstanceAnnotations.Should().HaveCount(0); } break; case ODataReaderState.ResourceEnd: if (depth == 1) { entryFromReader.Should().NotBeNull(); ValidateContainsAllExpectedInstanceAnnotations(entryFromReader.InstanceAnnotations, shouldReadAndValidateCustomInstanceAnnotations); } else { ((ODataResource)odataReader.Item).InstanceAnnotations.Should().HaveCount(0); } break; } } } entryFromReader.Should().NotBeNull(); ValidateContainsAllExpectedInstanceAnnotations(entryFromReader.InstanceAnnotations, shouldReadAndValidateCustomInstanceAnnotations); }
internal static void TopLevelEntryInstanceAnnotationTest(string payload, string contentType, bool isSingleton, bool isResponse, bool shouldReadAndValidateCustomInstanceAnnotations = true) { ODataResource entryFromReader = null; using (var messageReader = CreateODataMessageReader(payload, contentType, isResponse, shouldReadAndValidateCustomInstanceAnnotations)) { IEdmNavigationSource navigationSource; if (isSingleton) { navigationSource = Singleton; } else { navigationSource = EntitySet; } var odataReader = messageReader.CreateODataResourceReader(navigationSource, EntityType); while (odataReader.Read()) { switch (odataReader.State) { case ODataReaderState.ResourceStart: entryFromReader = (ODataResource)odataReader.Item; ValidateContainsAllExpectedInstanceAnnotationsBeforeStateChange(entryFromReader.InstanceAnnotations, shouldReadAndValidateCustomInstanceAnnotations); break; case ODataReaderState.ResourceEnd: entryFromReader.Should().NotBeNull(); ValidateContainsAllExpectedInstanceAnnotations(entryFromReader.InstanceAnnotations, shouldReadAndValidateCustomInstanceAnnotations); break; } } } entryFromReader.Should().NotBeNull(); ValidateContainsAllExpectedInstanceAnnotations(entryFromReader.InstanceAnnotations, shouldReadAndValidateCustomInstanceAnnotations); }