public void ODataCountAndNextLinkAnnotationsAppearsOnAllMetadataLevelsWhenSpecified(string acceptHeader) { //Arrange StubEntity[] entities = MetadataTestHelpers.CreateInstances <StubEntity[]>(); HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, BaseAddress.ToLowerInvariant() + "/StubEntity/Default.Paged"); message.SetAcceptHeader(acceptHeader); string expectedNextLink = new Uri("http://*****:*****@odata.count", result); JsonAssert.PropertyEquals(expectedNextLink, "@odata.nextLink", result); }
public async Task MetadataIsCorrectForThePropertiesOfAnEntryWithJustPrimitiveTypeProperties( string acceptHeader, string propertyName, string edmType) { // Arrange EntityWithSimpleProperties entity = MetadataTestHelpers.CreateInstances <EntityWithSimpleProperties[]>() .FirstOrDefault(); Assert.NotNull(entity); string expectedContextUrl = BaseAddress + "/$metadata#EntityWithSimpleProperties(" + entity.Id + ")/" + propertyName; string[] inferableTypes = new string[] { "Edm.Int32", "Edm.Double", "Edm.String", "Edm.Boolean" }; // Act var entryUrl = BaseAddress + "/EntityWithSimpleProperties(" + entity.Id + ")/" + propertyName; var response = await Client.GetWithAcceptAsync(entryUrl, acceptHeader); var result = await response.Content.ReadAsAsync <JObject>(); // Assert if (acceptHeader.Contains("odata.metadata=none")) { JsonAssert.DoesNotContainProperty("@odata.*", result); } else { ODataUrlAssert.UrlEquals(expectedContextUrl, result, "@odata.context", BaseAddress); if (!acceptHeader.Contains("odata.metadata=full") || (inferableTypes.Contains(edmType) && !result.IsSpecialValue())) { JsonAssert.DoesNotContainProperty("@odata.type", result); } else { var unqualifiedTypename = "#" + edmType.Substring(4); JsonAssert.PropertyEquals(unqualifiedTypename, "@odata.type", result); } } }
public void MetadataAnnotationAppearsOnlyForFullAndMinimalMetadata(string acceptHeader) { //Arrange StubEntity[] entities = MetadataTestHelpers.CreateInstances <StubEntity[]>(); HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, BaseAddress.ToLowerInvariant() + "/StubEntity/"); message.SetAcceptHeader(acceptHeader); string expectedMetadataUrl = BaseAddress.ToLowerInvariant() + "/$metadata#StubEntity"; //Act HttpResponseMessage response = Client.SendAsync(message).Result; JObject result = response.Content.ReadAsAsync <JObject>().Result; //Assert if (acceptHeader.Contains("odata.metadata=none")) { JsonAssert.DoesNotContainProperty("@odata.context", result); } else { JsonAssert.PropertyEquals(expectedMetadataUrl, "@odata.context", result); } }