diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/DefaultEdmValueConterter.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/DefaultEdmValueConterter.java index 698859697949..d35293670c1b 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/DefaultEdmValueConterter.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/DefaultEdmValueConterter.java @@ -16,6 +16,7 @@ import java.text.ParseException; import java.util.Date; +import java.util.UUID; import javax.inject.Inject; @@ -80,6 +81,9 @@ else if (EdmType.INT64.equals(edmType)) { else if (EdmType.BINARY.equals(edmType)) { return Base64.decode(value); } + else if (EdmType.GUID.equals(edmType)) { + return UUID.fromString(value); + } return value; } diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/table/TableServiceIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/table/TableServiceIntegrationTest.java index 88a4e0c1c130..55fc4c14fb3a 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/table/TableServiceIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/table/TableServiceIntegrationTest.java @@ -302,10 +302,12 @@ public void insertEntityWorks() throws Exception { Configuration config = createConfiguration(); TableContract service = TableService.create(config); byte[] binaryData = new byte[] { 1, 2, 3, 4 }; + UUID uuid = UUID.randomUUID(); Entity entity = new Entity().setPartitionKey("001").setRowKey("insertEntityWorks") .setProperty("test", EdmType.BOOLEAN, true).setProperty("test2", EdmType.STRING, "value") .setProperty("test3", EdmType.INT32, 3).setProperty("test4", EdmType.INT64, 12345678901L) - .setProperty("test5", EdmType.DATETIME, new Date()).setProperty("test6", EdmType.BINARY, binaryData); + .setProperty("test5", EdmType.DATETIME, new Date()).setProperty("test6", EdmType.BINARY, binaryData) + .setProperty("test7", EdmType.GUID, uuid); // Act InsertEntityResult result = service.insertEntity(TEST_TABLE_2, entity); @@ -341,6 +343,10 @@ public void insertEntityWorks() throws Exception { for (int i = 0; i < binaryData.length; i++) { assertEquals(binaryData[i], returnedBinaryData[i]); } + + assertNotNull(result.getEntity().getProperty("test7")); + assertTrue(result.getEntity().getProperty("test7").getValue() instanceof UUID); + assertEquals(uuid.toString(), result.getEntity().getProperty("test7").getValue().toString()); } @Test