[OLINGO-1246] Including key properties in context url and response payload even if select clause does not include key properties

This commit is contained in:
ramya vasanth 2018-03-21 09:52:07 +05:30
parent eea324d5a6
commit d9aff6300f
12 changed files with 125 additions and 65 deletions

View File

@ -90,7 +90,7 @@ public class ExpandSelectITCase extends AbstractParamTecSvcITCase {
final ClientEntity entity = response.getBody(); final ClientEntity entity = response.getBody();
assertNotNull(entity); assertNotNull(entity);
assertNull(entity.getProperty("PropertyInt16")); assertNotNull(entity.getProperty("PropertyInt16"));
final ClientProperty property = entity.getProperty("PropertyString"); final ClientProperty property = entity.getProperty("PropertyString");
assertNotNull(property); assertNotNull(property);
@ -114,7 +114,7 @@ public class ExpandSelectITCase extends AbstractParamTecSvcITCase {
assertNotNull(entities); assertNotNull(entities);
assertEquals(2, entities.size()); assertEquals(2, entities.size());
final ClientEntity inlineEntity = entities.get(0); final ClientEntity inlineEntity = entities.get(0);
assertEquals(2, inlineEntity.getProperties().size()); assertEquals(3, inlineEntity.getProperties().size());
assertShortOrInt(-128, inlineEntity.getProperty("PropertySByte").getPrimitiveValue().toValue()); assertShortOrInt(-128, inlineEntity.getProperty("PropertySByte").getPrimitiveValue().toValue());
Calendar time = Calendar.getInstance(); Calendar time = Calendar.getInstance();
time.clear(); time.clear();

View File

@ -357,7 +357,7 @@ public class TripPinServiceTest {
public void testSelectOption() throws Exception { public void testSelectOption() throws Exception {
HttpResponse response = httpGET(baseURL + "/People('russellwhyte')?$select=FirstName,LastName", 200); HttpResponse response = httpGET(baseURL + "/People('russellwhyte')?$select=FirstName,LastName", 200);
JsonNode node = getJSONNode(response); JsonNode node = getJSONNode(response);
assertEquals("$metadata#People(FirstName,LastName)/$entity", node.get("@odata.context").asText()); assertEquals("$metadata#People(UserName,FirstName,LastName)/$entity", node.get("@odata.context").asText());
assertEquals("Russell", node.get("FirstName").asText()); assertEquals("Russell", node.get("FirstName").asText());
} }
@ -432,13 +432,13 @@ public class TripPinServiceTest {
HttpResponse response = httpGET(baseURL+"/$entity?$id="+baseURL HttpResponse response = httpGET(baseURL+"/$entity?$id="+baseURL
+ "/People('kristakemp')&$select=FirstName", 200); + "/People('kristakemp')&$select=FirstName", 200);
JsonNode node = getJSONNode(response); JsonNode node = getJSONNode(response);
assertEquals("$metadata#People(FirstName)/$entity", node.get("@odata.context").asText()); assertEquals("$metadata#People(UserName,FirstName)/$entity", node.get("@odata.context").asText());
assertEquals("Krista", node.get("FirstName").asText()); assertEquals("Krista", node.get("FirstName").asText());
// using relative URL // using relative URL
response = httpGET(baseURL+"/$entity?$id="+"People('kristakemp')&$select=FirstName", 200); response = httpGET(baseURL+"/$entity?$id="+"People('kristakemp')&$select=FirstName", 200);
node = getJSONNode(response); node = getJSONNode(response);
assertEquals("$metadata#People(FirstName)/$entity", node.get("@odata.context").asText()); assertEquals("$metadata#People(UserName,FirstName)/$entity", node.get("@odata.context").asText());
assertEquals("Krista", node.get("FirstName").asText()); assertEquals("Krista", node.get("FirstName").asText());
} }

View File

@ -530,6 +530,7 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
final boolean all = ExpandSelectHelper.isAll(select); final boolean all = ExpandSelectHelper.isAll(select);
final Set<String> selected = all ? new HashSet<String>() : final Set<String> selected = all ? new HashSet<String>() :
ExpandSelectHelper.getSelectedPropertyNames(select.getSelectItems()); ExpandSelectHelper.getSelectedPropertyNames(select.getSelectItems());
addKeyPropertiesToSelected(selected, type);
for (final String propertyName : type.getPropertyNames()) { for (final String propertyName : type.getPropertyNames()) {
if (all || selected.contains(propertyName)) { if (all || selected.contains(propertyName)) {
final EdmProperty edmProperty = type.getStructuralProperty(propertyName); final EdmProperty edmProperty = type.getStructuralProperty(propertyName);
@ -540,6 +541,17 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
} }
} }
} }
private void addKeyPropertiesToSelected(Set<String> selected, EdmStructuredType type) {
if (!selected.isEmpty() && type instanceof EdmEntityType) {
List<String> keyNames = ((EdmEntityType) type).getKeyPredicateNames();
for (String key : keyNames) {
if (!selected.contains(key)) {
selected.add(key);
}
}
}
}
protected void writeNavigationProperties(final ServiceMetadata metadata, protected void writeNavigationProperties(final ServiceMetadata metadata,
final EdmStructuredType type, final Linked linked, final ExpandOption expand, final Integer toDepth, final EdmStructuredType type, final Linked linked, final ExpandOption expand, final Integer toDepth,

View File

@ -27,6 +27,7 @@ import org.apache.olingo.commons.api.edm.EdmAction;
import org.apache.olingo.commons.api.edm.EdmComplexType; import org.apache.olingo.commons.api.edm.EdmComplexType;
import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.commons.api.edm.EdmEntityType;
import org.apache.olingo.commons.api.edm.EdmFunction; import org.apache.olingo.commons.api.edm.EdmFunction;
import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty; import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
import org.apache.olingo.commons.api.edm.EdmProperty; import org.apache.olingo.commons.api.edm.EdmProperty;
import org.apache.olingo.commons.api.edm.EdmStructuredType; import org.apache.olingo.commons.api.edm.EdmStructuredType;
@ -85,10 +86,7 @@ public final class ContextURLHelper {
for (final String propertyName : type.getNavigationPropertyNames()) { for (final String propertyName : type.getNavigationPropertyNames()) {
constructSelectItemList(type, result, selectItems, selectedPropertyNames, propertyName); constructSelectItemList(type, result, selectItems, selectedPropertyNames, propertyName);
} }
if ((result.toString().length() == 0 && !selectItems.isEmpty()) || constructSelectItemListForActionsAndFunctions(type, result, selectItems);
(result.toString().split(",").length < selectItems.size())) {
constructSelectItemListForActionsAndFunctions(type, result, selectItems);
}
} }
} }
@ -202,6 +200,16 @@ public final class ContextURLHelper {
} }
} }
} }
} else {
if (type instanceof EdmEntityType) {
final List<String> keyNames = ((EdmEntityType) type).getKeyPredicateNames();
if (keyNames.contains(propertyName)) {
if (result.length() > 0) {
result.append(',');
}
result.append(Encoder.encode(propertyName));
}
}
} }
} }

View File

@ -630,6 +630,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
final boolean all = ExpandSelectHelper.isAll(select); final boolean all = ExpandSelectHelper.isAll(select);
final Set<String> selected = all ? new HashSet<String>() : final Set<String> selected = all ? new HashSet<String>() :
ExpandSelectHelper.getSelectedPropertyNames(select.getSelectItems()); ExpandSelectHelper.getSelectedPropertyNames(select.getSelectItems());
addKeyPropertiesToSelected(selected, type);
for (final String propertyName : type.getPropertyNames()) { for (final String propertyName : type.getPropertyNames()) {
if (all || selected.contains(propertyName)) { if (all || selected.contains(propertyName)) {
final EdmProperty edmProperty = type.getStructuralProperty(propertyName); final EdmProperty edmProperty = type.getStructuralProperty(propertyName);
@ -641,6 +642,17 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
} }
} }
private void addKeyPropertiesToSelected(Set<String> selected, EdmStructuredType type) {
if (!selected.isEmpty() && type instanceof EdmEntityType) {
List<String> keyNames = ((EdmEntityType) type).getKeyPredicateNames();
for (String key : keyNames) {
if (!selected.contains(key)) {
selected.add(key);
}
}
}
}
protected void writeNavigationProperties(final ServiceMetadata metadata, protected void writeNavigationProperties(final ServiceMetadata metadata,
final EdmStructuredType type, final Linked linked, final ExpandOption expand, final Integer toDepth, final EdmStructuredType type, final Linked linked, final ExpandOption expand, final Integer toDepth,
final String xml10InvalidCharReplacement, final Set<String> ancestors, String name, final XMLStreamWriter writer) final String xml10InvalidCharReplacement, final Set<String> ancestors, String name, final XMLStreamWriter writer)

View File

@ -892,7 +892,7 @@ public class TechnicalEntityProcessor extends TechnicalProcessor
throws ODataLibraryException { throws ODataLibraryException {
ContextURL contextUrl = isODataMetadataNone(requestedFormat) ? null : ContextURL contextUrl = isODataMetadataNone(requestedFormat) ? null :
getContextUrl(request.getRawODataPath(), edmEntitySet, edmEntityType, true, expand, null,isContNav); getContextUrl(request.getRawODataPath(), edmEntitySet, edmEntityType, true, expand, select,isContNav);
return odata.createSerializer(requestedFormat, request.getHeaders(HttpHeader.ODATA_VERSION)).entity( return odata.createSerializer(requestedFormat, request.getHeaders(HttpHeader.ODATA_VERSION)).entity(
serviceMetadata, serviceMetadata,
edmEntityType, edmEntityType,

View File

@ -453,7 +453,7 @@ public class JsonDeltaSerializerTest {
.select(select).build()).getContent(); .select(select).build()).getContent();
String jsonString = IOUtils.toString(stream); String jsonString = IOUtils.toString(stream);
Assert.assertEquals("{" Assert.assertEquals("{"
+"\"@odata.context\":\"$metadata#ESDelta(PropertyString)/$entity/$delta\"," +"\"@odata.context\":\"$metadata#ESDelta(PropertyInt16,PropertyString)/$entity/$delta\","
+ "\"value\":[{\"@odata.id\":\"ESDelta(32767)\",\"PropertyString\":\"Number:32767\"}," + "\"value\":[{\"@odata.id\":\"ESDelta(32767)\",\"PropertyString\":\"Number:32767\"},"
+ "{\"@odata.id\":\"ESDelta(-32768)\",\"PropertyString\":\"Number:-32768\"}]}", + "{\"@odata.id\":\"ESDelta(-32768)\",\"PropertyString\":\"Number:-32768\"}]}",
jsonString); jsonString);

View File

@ -608,7 +608,8 @@ public class JsonDeltaSerializerWithNavigationsTest {
.build()).getContent(); .build()).getContent();
String jsonString = IOUtils.toString(stream); String jsonString = IOUtils.toString(stream);
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@context\":\"$metadata#ESDelta(PropertyString,NavPropertyETAllPrimOne(PropertyString))/$delta\"," + "\"@context\":\"$metadata#ESDelta(PropertyInt16,PropertyString,NavPropertyETAllPrimOne("
+ "PropertyInt16,PropertyString))/$delta\","
+ "\"value\":[{\"@id\":\"ESDelta(100)\",\"PropertyInt16\":100,\"PropertyString\":\"Number:100\"," + "\"value\":[{\"@id\":\"ESDelta(100)\",\"PropertyInt16\":100,\"PropertyString\":\"Number:100\","
+ "\"NavPropertyETAllPrimOne@delta\":{\"@id\":\"ESAllPrim(32767)\"," + "\"NavPropertyETAllPrimOne@delta\":{\"@id\":\"ESAllPrim(32767)\","
+ "\"PropertyString\":\"First Resource - positive values\"}}]}", + "\"PropertyString\":\"First Resource - positive values\"}}]}",
@ -642,7 +643,7 @@ public class JsonDeltaSerializerWithNavigationsTest {
.select(select).build()).getContent(); .select(select).build()).getContent();
String jsonString = IOUtils.toString(stream); String jsonString = IOUtils.toString(stream);
Assert.assertEquals("{" Assert.assertEquals("{"
+"\"@context\":\"$metadata#ESDelta(PropertyString)/$entity/$delta\"," +"\"@context\":\"$metadata#ESDelta(PropertyInt16,PropertyString)/$entity/$delta\","
+ "\"value\":[{\"@id\":\"ESDelta(32767)\",\"PropertyString\":\"Number:32767\"}," + "\"value\":[{\"@id\":\"ESDelta(32767)\",\"PropertyString\":\"Number:32767\"},"
+ "{\"@id\":\"ESDelta(-32768)\",\"PropertyString\":\"Number:-32768\"}]}", + "{\"@id\":\"ESDelta(-32768)\",\"PropertyString\":\"Number:-32768\"}]}",
jsonString); jsonString);

View File

@ -1162,9 +1162,9 @@ public class ODataJsonSerializerTest {
.build()).getContent(); .build()).getContent();
final String resultString = IOUtils.toString(result); final String resultString = IOUtils.toString(result);
final String expectedResult = "{" final String expectedResult = "{"
+ "\"@odata.context\":\"$metadata#ESAllPrim(PropertyBoolean,PropertyDate)/$entity\"," + "\"@odata.context\":\"$metadata#ESAllPrim(PropertyInt16,PropertyBoolean,PropertyDate)/$entity\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"@odata.id\":\"ESAllPrim(32767)\"," + "\"@odata.id\":\"ESAllPrim(32767)\",\"PropertyInt16\":32767,"
+ "\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}"; + "\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}";
Assert.assertEquals(expectedResult, resultString); Assert.assertEquals(expectedResult, resultString);
} }
@ -1275,11 +1275,11 @@ public class ODataJsonSerializerTest {
String expected = "{" String expected = "{"
+ "\"@odata.context\":\"$metadata#ESFourKeyAlias" + "\"@odata.context\":\"$metadata#ESFourKeyAlias"
+ "(PropertyComp/PropertyString,PropertyCompComp/PropertyComp)\"," + "(PropertyInt16,PropertyComp/PropertyString,PropertyCompComp/PropertyComp)\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"value\":[{" + "\"value\":[{"
+ "\"@odata.id\":\"ESFourKeyAlias(PropertyInt16=1,KeyAlias1=11,KeyAlias2='Num11',KeyAlias3='Num111')\"," + "\"@odata.id\":\"ESFourKeyAlias(PropertyInt16=1,KeyAlias1=11,KeyAlias2='Num11',KeyAlias3='Num111')\","
+ "\"PropertyComp\":{" + "\"PropertyInt16\":1,\"PropertyComp\":{"
+ "\"PropertyString\":\"Num11\"" + "\"PropertyString\":\"Num11\""
+ "}," + "},"
+ "\"PropertyCompComp\":{" + "\"PropertyCompComp\":{"
@ -1433,9 +1433,10 @@ public class ODataJsonSerializerTest {
.build()).getContent(); .build()).getContent();
Assert.assertNotNull(result); Assert.assertNotNull(result);
final String resultString = IOUtils.toString(result); final String resultString = IOUtils.toString(result);
Assert.assertEquals( "{\"@odata.context\":\"$metadata#ESAllPrim(PropertyBoolean,PropertyDate)/$entity\","+ Assert.assertEquals( "{\"@odata.context\":\"$metadata#ESAllPrim(PropertyInt16,"
+ "PropertyBoolean,PropertyDate)/$entity\","+
"\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\",\"@odata.id\":\"ESAllPrim(32767)\","+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\",\"@odata.id\":\"ESAllPrim(32767)\","+
"\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}", "\"PropertyInt16\":32767,\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}",
resultString); resultString);
} }
@ -1493,10 +1494,12 @@ public class ODataJsonSerializerTest {
.expand(expand) .expand(expand)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@odata.context\":\"$metadata#ESTwoPrim(NavPropertyETAllPrimOne(PropertyDate))/$entity\"," + "\"@odata.context\":\"$metadata#ESTwoPrim(PropertyInt16,"
+ "NavPropertyETAllPrimOne(PropertyInt16,PropertyDate))/$entity\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\"," + "\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\","
+ "\"NavPropertyETAllPrimOne\":{\"@odata.id\":\"ESAllPrim(32767)\",\"PropertyDate\":\"2012-12-03\"}}", + "\"NavPropertyETAllPrimOne\":{\"@odata.id\":\"ESAllPrim(32767)\","
+ "\"PropertyInt16\":32767,\"PropertyDate\":\"2012-12-03\"}}",
resultString); resultString);
} }
@ -1522,9 +1525,9 @@ public class ODataJsonSerializerTest {
.select(select) .select(select)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@odata.context\":\"$metadata#ESAllPrim(PropertySByte)/$entity\"," + "\"@odata.context\":\"$metadata#ESAllPrim(PropertyInt16,PropertySByte)/$entity\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"@odata.id\":\"ESAllPrim(32767)\"," + "\"@odata.id\":\"ESAllPrim(32767)\",\"PropertyInt16\":32767,"
+ "\"PropertySByte\":127," + "\"PropertySByte\":127,"
+ "\"NavPropertyETTwoPrimOne\":{\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\"}," + "\"NavPropertyETTwoPrimOne\":{\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\"},"
+ "\"NavPropertyETTwoPrimMany\":[{\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"}]}", + "\"NavPropertyETTwoPrimMany\":[{\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"}]}",
@ -1551,9 +1554,9 @@ public class ODataJsonSerializerTest {
.select(select) .select(select)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@odata.context\":\"$metadata#ESAllPrim(PropertyTimeOfDay)/$entity\"," + "\"@odata.context\":\"$metadata#ESAllPrim(PropertyInt16,PropertyTimeOfDay)/$entity\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"@odata.id\":\"ESAllPrim(-32768)\"," + "\"@odata.id\":\"ESAllPrim(-32768)\",\"PropertyInt16\":-32768,"
+ "\"PropertyTimeOfDay\":\"23:49:14\"," + "\"PropertyTimeOfDay\":\"23:49:14\","
+ "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]}", + "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]}",
resultString); resultString);
@ -1583,13 +1586,14 @@ public class ODataJsonSerializerTest {
.expand(expand) .expand(expand)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@odata.context\":\"$metadata#ESTwoPrim(NavPropertyETAllPrimMany(PropertyInt32))/$entity\"," + "\"@odata.context\":\"$metadata#ESTwoPrim(PropertyInt16,"
+ "NavPropertyETAllPrimMany(PropertyInt16,PropertyInt32))/$entity\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"," + "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\","
+ "\"NavPropertyETAllPrimMany\":[" + "\"NavPropertyETAllPrimMany\":["
+ "{\"@odata.id\":\"ESAllPrim(-32768)\",\"PropertyInt32\":-2147483648," + "{\"@odata.id\":\"ESAllPrim(-32768)\",\"PropertyInt16\":-32768,\"PropertyInt32\":-2147483648,"
+ "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]}," + "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]},"
+ "{\"@odata.id\":\"ESAllPrim(0)\",\"PropertyInt32\":0,\"NavPropertyETTwoPrimOne\":{" + "{\"@odata.id\":\"ESAllPrim(0)\",\"PropertyInt16\":0,\"PropertyInt32\":0,\"NavPropertyETTwoPrimOne\":{"
+ "\"@odata.type\":\"#olingo.odata.test1.ETBase\",\"PropertyInt16\":111," + "\"@odata.type\":\"#olingo.odata.test1.ETBase\",\"PropertyInt16\":111,"
+ "\"PropertyString\":\"TEST A\",\"AdditionalPropertyString_5\":\"TEST A 0815\"}," + "\"PropertyString\":\"TEST A\",\"AdditionalPropertyString_5\":\"TEST A 0815\"},"
+ "\"NavPropertyETTwoPrimMany\":[" + "\"NavPropertyETTwoPrimMany\":["
@ -1621,7 +1625,7 @@ public class ODataJsonSerializerTest {
.suffix(Suffix.ENTITY).build()) .suffix(Suffix.ENTITY).build())
.expand(expand) .expand(expand)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{\"@odata.context\":\"$metadata#ESTwoPrim/$entity\"," Assert.assertEquals("{\"@odata.context\":\"$metadata#ESTwoPrim(PropertyInt16)/$entity\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"," + "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\","
+ "\"NavPropertyETAllPrimOne\":null," + "\"NavPropertyETAllPrimOne\":null,"
@ -2693,7 +2697,7 @@ public class ODataJsonSerializerTest {
final String expectedResult = "{\"@odata.context\":\"$metadata#ESTwoKeyNav/$entity\"," final String expectedResult = "{\"@odata.context\":\"$metadata#ESTwoKeyNav/$entity\","
+ "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@odata.metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"@odata.id\":\"ESTwoKeyNav(PropertyInt16=1,PropertyString='1')\"," + "\"@odata.id\":\"ESTwoKeyNav(PropertyInt16=1,PropertyString='1')\","
+ "\"CollPropertyCompNav\":[{}]}"; + "\"PropertyInt16\":1,\"PropertyString\":\"1\",\"CollPropertyCompNav\":[{}]}";
Assert.assertEquals(expectedResult, resultString); Assert.assertEquals(expectedResult, resultString);
} }
} }

View File

@ -1175,9 +1175,9 @@ public class ODataJsonSerializerv01Test {
.build()).getContent(); .build()).getContent();
final String resultString = IOUtils.toString(result); final String resultString = IOUtils.toString(result);
final String expectedResult = "{" final String expectedResult = "{"
+ "\"@context\":\"$metadata#ESAllPrim(PropertyBoolean,PropertyDate)/$entity\"," + "\"@context\":\"$metadata#ESAllPrim(PropertyInt16,PropertyBoolean,PropertyDate)/$entity\","
+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"@id\":\"ESAllPrim(32767)\"," + "\"@id\":\"ESAllPrim(32767)\",\"PropertyInt16\":32767,"
+ "\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}"; + "\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}";
Assert.assertEquals(expectedResult, resultString); Assert.assertEquals(expectedResult, resultString);
} }
@ -1288,11 +1288,11 @@ public class ODataJsonSerializerv01Test {
String expected = "{" String expected = "{"
+ "\"@context\":\"$metadata#ESFourKeyAlias" + "\"@context\":\"$metadata#ESFourKeyAlias"
+ "(PropertyComp/PropertyString,PropertyCompComp/PropertyComp)\"," + "(PropertyInt16,PropertyComp/PropertyString,PropertyCompComp/PropertyComp)\","
+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"value\":[{" + "\"value\":[{"
+ "\"@id\":\"ESFourKeyAlias(PropertyInt16=1,KeyAlias1=11,KeyAlias2='Num11',KeyAlias3='Num111')\"," + "\"@id\":\"ESFourKeyAlias(PropertyInt16=1,KeyAlias1=11,KeyAlias2='Num11',KeyAlias3='Num111')\","
+ "\"PropertyComp\":{" + "\"PropertyInt16\":1,\"PropertyComp\":{"
+ "\"PropertyString\":\"Num11\"" + "\"PropertyString\":\"Num11\""
+ "}," + "},"
+ "\"PropertyCompComp\":{" + "\"PropertyCompComp\":{"
@ -1446,9 +1446,10 @@ public class ODataJsonSerializerv01Test {
.build()).getContent(); .build()).getContent();
Assert.assertNotNull(result); Assert.assertNotNull(result);
final String resultString = IOUtils.toString(result); final String resultString = IOUtils.toString(result);
Assert.assertEquals( "{\"@context\":\"$metadata#ESAllPrim(PropertyBoolean,PropertyDate)/$entity\","+ Assert.assertEquals( "{\"@context\":\"$metadata#ESAllPrim(PropertyInt16,"
+ "PropertyBoolean,PropertyDate)/$entity\","+
"\"@metadataEtag\":\"W/\\\"metadataETag\\\"\",\"@id\":\"ESAllPrim(32767)\","+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\",\"@id\":\"ESAllPrim(32767)\","+
"\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}", "\"PropertyInt16\":32767,\"PropertyBoolean\":true,\"PropertyDate\":\"2012-12-03\"}",
resultString); resultString);
} }
@ -1506,10 +1507,12 @@ public class ODataJsonSerializerv01Test {
.expand(expand) .expand(expand)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@context\":\"$metadata#ESTwoPrim(NavPropertyETAllPrimOne(PropertyDate))/$entity\"," + "\"@context\":\"$metadata#ESTwoPrim(PropertyInt16,"
+ "NavPropertyETAllPrimOne(PropertyInt16,PropertyDate))/$entity\","
+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\"," + "\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\","
+ "\"NavPropertyETAllPrimOne\":{\"@id\":\"ESAllPrim(32767)\",\"PropertyDate\":\"2012-12-03\"}}", + "\"NavPropertyETAllPrimOne\":{\"@id\":\"ESAllPrim(32767)\","
+ "\"PropertyInt16\":32767,\"PropertyDate\":\"2012-12-03\"}}",
resultString); resultString);
} }
@ -1535,9 +1538,9 @@ public class ODataJsonSerializerv01Test {
.select(select) .select(select)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@context\":\"$metadata#ESAllPrim(PropertySByte)/$entity\"," + "\"@context\":\"$metadata#ESAllPrim(PropertyInt16,PropertySByte)/$entity\","
+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"@id\":\"ESAllPrim(32767)\"," + "\"@id\":\"ESAllPrim(32767)\",\"PropertyInt16\":32767,"
+ "\"PropertySByte\":127," + "\"PropertySByte\":127,"
+ "\"NavPropertyETTwoPrimOne\":{\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\"}," + "\"NavPropertyETTwoPrimOne\":{\"PropertyInt16\":32767,\"PropertyString\":\"Test String4\"},"
+ "\"NavPropertyETTwoPrimMany\":[{\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"}]}", + "\"NavPropertyETTwoPrimMany\":[{\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"}]}",
@ -1564,9 +1567,9 @@ public class ODataJsonSerializerv01Test {
.select(select) .select(select)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@context\":\"$metadata#ESAllPrim(PropertyTimeOfDay)/$entity\"," + "\"@context\":\"$metadata#ESAllPrim(PropertyInt16,PropertyTimeOfDay)/$entity\","
+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"@id\":\"ESAllPrim(-32768)\"," + "\"@id\":\"ESAllPrim(-32768)\",\"PropertyInt16\":-32768,"
+ "\"PropertyTimeOfDay\":\"23:49:14\"," + "\"PropertyTimeOfDay\":\"23:49:14\","
+ "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]}", + "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]}",
resultString); resultString);
@ -1596,13 +1599,14 @@ public class ODataJsonSerializerv01Test {
.expand(expand) .expand(expand)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{" Assert.assertEquals("{"
+ "\"@context\":\"$metadata#ESTwoPrim(NavPropertyETAllPrimMany(PropertyInt32))/$entity\"," + "\"@context\":\"$metadata#ESTwoPrim(PropertyInt16,"
+ "NavPropertyETAllPrimMany(PropertyInt16,PropertyInt32))/$entity\","
+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"," + "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\","
+ "\"NavPropertyETAllPrimMany\":[" + "\"NavPropertyETAllPrimMany\":["
+ "{\"@id\":\"ESAllPrim(-32768)\",\"PropertyInt32\":-2147483648," + "{\"@id\":\"ESAllPrim(-32768)\",\"PropertyInt16\":-32768,\"PropertyInt32\":-2147483648,"
+ "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]}," + "\"NavPropertyETTwoPrimOne\":null,\"NavPropertyETTwoPrimMany\":[]},"
+ "{\"@id\":\"ESAllPrim(0)\",\"PropertyInt32\":0,\"NavPropertyETTwoPrimOne\":{" + "{\"@id\":\"ESAllPrim(0)\",\"PropertyInt16\":0,\"PropertyInt32\":0,\"NavPropertyETTwoPrimOne\":{"
+ "\"@type\":\"#olingo.odata.test1.ETBase\",\"PropertyInt16\":111," + "\"@type\":\"#olingo.odata.test1.ETBase\",\"PropertyInt16\":111,"
+ "\"PropertyString\":\"TEST A\",\"AdditionalPropertyString_5\":\"TEST A 0815\"}," + "\"PropertyString\":\"TEST A\",\"AdditionalPropertyString_5\":\"TEST A 0815\"},"
+ "\"NavPropertyETTwoPrimMany\":[" + "\"NavPropertyETTwoPrimMany\":["
@ -1634,7 +1638,7 @@ public class ODataJsonSerializerv01Test {
.suffix(Suffix.ENTITY).build()) .suffix(Suffix.ENTITY).build())
.expand(expand) .expand(expand)
.build()).getContent()); .build()).getContent());
Assert.assertEquals("{\"@context\":\"$metadata#ESTwoPrim/$entity\"," Assert.assertEquals("{\"@context\":\"$metadata#ESTwoPrim(PropertyInt16)/$entity\","
+ "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\"," + "\"@metadataEtag\":\"W/\\\"metadataETag\\\"\","
+ "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\"," + "\"PropertyInt16\":-365,\"PropertyString\":\"Test String2\","
+ "\"NavPropertyETAllPrimOne\":null," + "\"NavPropertyETAllPrimOne\":null,"

View File

@ -223,8 +223,8 @@ public class ContextURLHelperTest {
final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem)); final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), expand, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), expand, select)).build();
assertEquals("$metadata#ESTwoPrim(PropertyString,NavPropertyETAllPrimOne()," assertEquals("$metadata#ESTwoPrim(PropertyInt16,PropertyString,NavPropertyETAllPrimOne(),"
+ "NavPropertyETAllPrimMany(PropertyInt32))", + "NavPropertyETAllPrimMany(PropertyInt16,PropertyInt32))",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -342,7 +342,8 @@ public class ContextURLHelperTest {
final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem)); final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESCompCollDerived(PropertyCompAno/olingo.odata.test1.CTBaseAno/AdditionalPropString)", assertEquals("$metadata#ESCompCollDerived(PropertyInt16,PropertyCompAno/"
+ "olingo.odata.test1.CTBaseAno/AdditionalPropString)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -356,7 +357,7 @@ public class ContextURLHelperTest {
final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem)); final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESCompCollComp(PropertyComp/CollPropertyComp/" assertEquals("$metadata#ESCompCollComp(PropertyInt16,PropertyComp/CollPropertyComp/"
+ "olingo.odata.test1.CTBase/AdditionalPropString)", + "olingo.odata.test1.CTBase/AdditionalPropString)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -372,7 +373,9 @@ public class ContextURLHelperTest {
final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem)); final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(olingo.odata.test1.ETBaseTwoKeyNav/NavPropertyETBaseTwoKeyNavOne)", assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "olingo.odata.test1.ETBaseTwoKeyNav/"
+ "NavPropertyETBaseTwoKeyNavOne)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -387,7 +390,8 @@ public class ContextURLHelperTest {
final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem)); final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(olingo.odata.test1.ETBaseTwoKeyNav/PropertyDate)", assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "olingo.odata.test1.ETBaseTwoKeyNav/PropertyDate)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -403,7 +407,8 @@ public class ContextURLHelperTest {
final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem1, selectItem2)); final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem1, selectItem2));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(CollPropertyComp,olingo.odata.test1.ETBaseTwoKeyNav/" assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "CollPropertyComp,olingo.odata.test1.ETBaseTwoKeyNav/"
+ "NavPropertyETTwoBaseTwoKeyNavOne)", + "NavPropertyETTwoBaseTwoKeyNavOne)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -421,7 +426,8 @@ public class ContextURLHelperTest {
final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem)); final SelectOption select = ExpandSelectMock.mockSelectOption(Arrays.asList(selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(olingo.odata.test1.ETBaseTwoKeyNav/CollPropertyComp/" assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "olingo.odata.test1.ETBaseTwoKeyNav/CollPropertyComp/"
+ "olingo.odata.test1.CTBasePrimCompNav/NavPropertyETTwoKeyNavOne)", + "olingo.odata.test1.CTBasePrimCompNav/NavPropertyETTwoKeyNavOne)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -443,7 +449,7 @@ public class ContextURLHelperTest {
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), expand, null)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), expand, null)).build();
assertEquals("$metadata#ESKeyNavCont(NavPropertyETTwoKeyNavContOne(" assertEquals("$metadata#ESKeyNavCont(NavPropertyETTwoKeyNavContOne("
+ "olingo.odata.test1.ETBaseTwoKeyNav/PropertyDate))", + "PropertyInt16,PropertyString,olingo.odata.test1.ETBaseTwoKeyNav/PropertyDate))",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -456,7 +462,8 @@ public class ContextURLHelperTest {
selectItem)); selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(CollPropertyCompNav/NavPropertyETTwoKeyNavMany)", assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "CollPropertyCompNav/NavPropertyETTwoKeyNavMany)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -472,7 +479,8 @@ public class ContextURLHelperTest {
selectItem)); selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(olingo.odata.test1.BAESTwoKeyNavRTESTwoKeyNav)", assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "olingo.odata.test1.BAESTwoKeyNavRTESTwoKeyNav)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -490,7 +498,8 @@ public class ContextURLHelperTest {
selectItem1, selectItem2)); selectItem1, selectItem2));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(PropertyString,olingo.odata.test1.BAESTwoKeyNavRTESTwoKeyNav)", assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "olingo.odata.test1.BAESTwoKeyNavRTESTwoKeyNav)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
@ -506,7 +515,8 @@ public class ContextURLHelperTest {
selectItem)); selectItem));
final ContextURL contextURL = ContextURL.with().entitySet(entitySet) final ContextURL contextURL = ContextURL.with().entitySet(entitySet)
.selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build(); .selectList(ContextURLHelper.buildSelectList(entitySet.getEntityType(), null, select)).build();
assertEquals("$metadata#ESTwoKeyNav(olingo.odata.test1.BFCESTwoKeyNavRTString)", assertEquals("$metadata#ESTwoKeyNav(PropertyInt16,PropertyString,"
+ "olingo.odata.test1.BFCESTwoKeyNavRTString)",
ContextURLBuilder.create(contextURL).toASCIIString()); ContextURLBuilder.create(contextURL).toASCIIString());
} }
} }

View File

@ -1521,7 +1521,7 @@ public class ODataXmlSerializerTest {
"<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
" xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + " xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
" xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" " + " xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" " +
" m:context=\"$metadata#ESAllPrim(PropertyBoolean,PropertyDate)/$entity\"\n" + " m:context=\"$metadata#ESAllPrim(PropertyInt16,PropertyBoolean,PropertyDate)/$entity\"\n" +
" m:metadata-etag=\"metadataETag\">\n" + " m:metadata-etag=\"metadataETag\">\n" +
" <a:id>ESAllPrim(32767)</a:id>\n" + " <a:id>ESAllPrim(32767)</a:id>\n" +
" <a:title />\n" + " <a:title />\n" +
@ -1543,6 +1543,7 @@ public class ODataXmlSerializerTest {
" term=\"#olingo.odata.test1.ETAllPrim\" />\n" + " term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
" <a:content type=\"application/xml\">\n" + " <a:content type=\"application/xml\">\n" +
" <m:properties>\n" + " <m:properties>\n" +
" <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>" +
" <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" + " <d:PropertyBoolean m:type=\"Boolean\">true</d:PropertyBoolean>\n" +
" <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" + " <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" +
" </m:properties>\n" + " </m:properties>\n" +
@ -1685,7 +1686,7 @@ public class ODataXmlSerializerTest {
"xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
"xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" \n" + "xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" \n" +
"m:context=\"$metadata#ESFourKeyAlias" + "m:context=\"$metadata#ESFourKeyAlias" +
"(PropertyComp/PropertyString,PropertyCompComp/PropertyComp)\"\n" + "(PropertyInt16,PropertyComp/PropertyString,PropertyCompComp/PropertyComp)\"\n" +
"m:metadata-etag=\"metadataETag\">\n" + "m:metadata-etag=\"metadataETag\">\n" +
"<a:id>http://host/svc/ESFourKeyAlias</a:id>\n" + "<a:id>http://host/svc/ESFourKeyAlias</a:id>\n" +
"<a:entry>\n" + "<a:entry>\n" +
@ -1702,6 +1703,7 @@ public class ODataXmlSerializerTest {
"term=\"#olingo.odata.test1.ETFourKeyAlias\"/>\n" + "term=\"#olingo.odata.test1.ETFourKeyAlias\"/>\n" +
"<a:content type=\"application/xml\">\n" + "<a:content type=\"application/xml\">\n" +
"<m:properties>\n" + "<m:properties>\n" +
" <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>" +
"<d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" + "<d:PropertyComp m:type=\"#olingo.odata.test1.CTTwoPrim\">\n" +
"<d:PropertyString>Num11</d:PropertyString>\n" + "<d:PropertyString>Num11</d:PropertyString>\n" +
"</d:PropertyComp>\n" + "</d:PropertyComp>\n" +
@ -1951,7 +1953,8 @@ public class ODataXmlSerializerTest {
"<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\" " "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\" "
+ "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
" xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\"\n" + " xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\"\n" +
" m:context=\"$metadata#ESTwoPrim(NavPropertyETAllPrimOne(PropertyDate))/$entity\"\n" + " m:context=\"$metadata#ESTwoPrim(PropertyInt16,"
+ "NavPropertyETAllPrimOne(PropertyInt16,PropertyDate))/$entity\"\n" +
" m:metadata-etag=\"metadataETag\">\n" + " m:metadata-etag=\"metadataETag\">\n" +
" <a:id>ESTwoPrim(32767)</a:id>\n" + " <a:id>ESTwoPrim(32767)</a:id>\n" +
" <a:title />\n" + " <a:title />\n" +
@ -1987,6 +1990,7 @@ public class ODataXmlSerializerTest {
" term=\"#olingo.odata.test1.ETAllPrim\" />\n" + " term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
" <a:content type=\"application/xml\">\n" + " <a:content type=\"application/xml\">\n" +
" <m:properties>\n" + " <m:properties>\n" +
" <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>" +
" <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" + " <d:PropertyDate m:type=\"Date\">2012-12-03</d:PropertyDate>\n" +
" </m:properties>\n" + " </m:properties>\n" +
" </a:content>\n" + " </a:content>\n" +
@ -2051,7 +2055,7 @@ public class ODataXmlSerializerTest {
"<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" + "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\"\n" +
" xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + " xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
" xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" " " xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
+ "m:context=\"$metadata#ESAllPrim(PropertySByte)/$entity\"\n" + + "m:context=\"$metadata#ESAllPrim(PropertyInt16,PropertySByte)/$entity\"\n" +
" m:metadata-etag=\"metadataETag\">\n" + " m:metadata-etag=\"metadataETag\">\n" +
" <a:id>ESAllPrim(32767)</a:id>\n" + " <a:id>ESAllPrim(32767)</a:id>\n" +
" <a:title />\n" + " <a:title />\n" +
@ -2159,6 +2163,7 @@ public class ODataXmlSerializerTest {
" term=\"#olingo.odata.test1.ETAllPrim\" />\n" + " term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
" <a:content type=\"application/xml\">\n" + " <a:content type=\"application/xml\">\n" +
" <m:properties>\n" + " <m:properties>\n" +
" <d:PropertyInt16 m:type=\"Int16\">32767</d:PropertyInt16>" +
" <d:PropertySByte m:type=\"SByte\">127</d:PropertySByte>\n" + " <d:PropertySByte m:type=\"SByte\">127</d:PropertySByte>\n" +
" </m:properties>\n" + " </m:properties>\n" +
" </a:content>\n" + " </a:content>\n" +
@ -2195,7 +2200,7 @@ public class ODataXmlSerializerTest {
"<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\" " "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\" "
+ "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
" xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" " " xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\" "
+ "m:context=\"$metadata#ESAllPrim(PropertyTimeOfDay)/$entity\"\n" + + "m:context=\"$metadata#ESAllPrim(PropertyInt16,PropertyTimeOfDay)/$entity\"\n" +
" m:metadata-etag=\"metadataETag\">\n" + " m:metadata-etag=\"metadataETag\">\n" +
" <a:id>ESAllPrim(-32768)</a:id>\n" + " <a:id>ESAllPrim(-32768)</a:id>\n" +
" <a:title />\n" + " <a:title />\n" +
@ -2223,6 +2228,7 @@ public class ODataXmlSerializerTest {
" term=\"#olingo.odata.test1.ETAllPrim\" />\n" + " term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
" <a:content type=\"application/xml\">\n" + " <a:content type=\"application/xml\">\n" +
" <m:properties>\n" + " <m:properties>\n" +
" <d:PropertyInt16 m:type=\"Int16\">-32768</d:PropertyInt16>" +
" <d:PropertyTimeOfDay m:type=\"TimeOfDay\">23:49:14\n" + " <d:PropertyTimeOfDay m:type=\"TimeOfDay\">23:49:14\n" +
" </d:PropertyTimeOfDay>\n" + " </d:PropertyTimeOfDay>\n" +
" </m:properties>\n" + " </m:properties>\n" +
@ -2263,7 +2269,8 @@ public class ODataXmlSerializerTest {
"<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\" " "<a:entry xmlns:a=\"http://www.w3.org/2005/Atom\" "
+ "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" + + "xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\"\n" +
" xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\"\n" + " xmlns:d=\"http://docs.oasis-open.org/odata/ns/data\"\n" +
" m:context=\"$metadata#ESTwoPrim(NavPropertyETAllPrimMany(PropertyInt32))/$entity\"\n" + " m:context=\"$metadata#ESTwoPrim(PropertyInt16,"
+ "NavPropertyETAllPrimMany(PropertyInt16,PropertyInt32))/$entity\"\n" +
" m:metadata-etag=\"metadataETag\">\n" + " m:metadata-etag=\"metadataETag\">\n" +
" <a:id>ESTwoPrim(-365)</a:id>\n" + " <a:id>ESTwoPrim(-365)</a:id>\n" +
" <a:title />\n" + " <a:title />\n" +
@ -2311,6 +2318,7 @@ public class ODataXmlSerializerTest {
" term=\"#olingo.odata.test1.ETAllPrim\" />\n" + " term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
" <a:content type=\"application/xml\">\n" + " <a:content type=\"application/xml\">\n" +
" <m:properties>\n" + " <m:properties>\n" +
" <d:PropertyInt16 m:type=\"Int16\">-32768</d:PropertyInt16>" +
" <d:PropertyInt32 m:type=\"Int32\">-2147483648</d:PropertyInt32>\n" + " <d:PropertyInt32 m:type=\"Int32\">-2147483648</d:PropertyInt32>\n" +
" </m:properties>\n" + " </m:properties>\n" +
" </a:content>\n" + " </a:content>\n" +
@ -2494,6 +2502,7 @@ public class ODataXmlSerializerTest {
" term=\"#olingo.odata.test1.ETAllPrim\" />\n" + " term=\"#olingo.odata.test1.ETAllPrim\" />\n" +
" <a:content type=\"application/xml\">\n" + " <a:content type=\"application/xml\">\n" +
" <m:properties>\n" + " <m:properties>\n" +
" <d:PropertyInt16 m:type=\"Int16\">0</d:PropertyInt16>" +
" <d:PropertyInt32 m:type=\"Int32\">0</d:PropertyInt32>\n" + " <d:PropertyInt32 m:type=\"Int32\">0</d:PropertyInt32>\n" +
" </m:properties>\n" + " </m:properties>\n" +
" </a:content>\n" + " </a:content>\n" +