private void readAndWrite(final ODataPubFormat format) { final InputStream input = getClass().getResourceAsStream("Customer_-10." + getSuffix(format)); final ODataEntity entity = getClient() .getBinder() .getODataEntity( getClient() .getDeserializer() .toEntry(input, getClient().getResourceFactory().entryClassForFormat(format))); assertNotNull(entity); assertEquals("Microsoft.Test.OData.Services.AstoriaDefaultService.Customer", entity.getName()); assertTrue(entity.getEditLink().toASCIIString().endsWith("/Customer(-10)")); assertEquals(5, entity.getNavigationLinks().size()); assertEquals(2, entity.getEditMediaLinks().size()); boolean check = false; for (ODataLink link : entity.getNavigationLinks()) { if ("Wife".equals(link.getName()) && (link.getLink().toASCIIString().endsWith("/Customer(-10)/Wife"))) { check = true; } } assertTrue(check); final ODataEntity written = getClient() .getBinder() .getODataEntity( getClient() .getBinder() .getEntry( entity, getClient().getResourceFactory().entryClassForFormat(format))); assertEquals(entity, written); }
// compares links of the newly created entity with the previous public void validateLinks( final Collection<ODataLink> original, final Collection<ODataLink> actual) { assertTrue(original.size() <= actual.size()); for (ODataLink originalLink : original) { ODataLink foundOriginal = null; ODataLink foundActual = null; for (ODataLink actualLink : actual) { if (actualLink.getType() == originalLink.getType() && (originalLink.getLink() == null || actualLink .getLink() .toASCIIString() .endsWith(originalLink.getLink().toASCIIString())) && actualLink.getName().equals(originalLink.getName())) { foundOriginal = originalLink; foundActual = actualLink; } } assertNotNull(foundOriginal); assertNotNull(foundActual); if (foundOriginal instanceof ODataInlineEntity && foundActual instanceof ODataInlineEntity) { final ODataEntity originalInline = ((ODataInlineEntity) foundOriginal).getEntity(); assertNotNull(originalInline); final ODataEntity actualInline = ((ODataInlineEntity) foundActual).getEntity(); assertNotNull(actualInline); checkProperties(originalInline.getProperties(), actualInline.getProperties()); } } }