@Test public void testBatchRetrieveWithNullResolverShouldThrow() { try { TableBatchOperation batch = new TableBatchOperation(); batch.retrieve("foo", "blah", (EntityResolver<?>) null); fail(); } catch (IllegalArgumentException ex) { assertEquals(ex.getMessage(), String.format(SR.ARGUMENT_NULL_OR_EMPTY, SR.QUERY_REQUIRES_VALID_CLASSTYPE_OR_RESOLVER)); } }
@Test public void testBatchMultiQueryShouldThrow() { Class1 ref = TableTestHelper.generateRandomEntity("jxscl_odata"); Class1 ref2 = TableTestHelper.generateRandomEntity("jxscl_odata"); try { TableBatchOperation batch = new TableBatchOperation(); batch.retrieve(ref.getPartitionKey(), ref.getRowKey(), ref.getClass()); batch.retrieve(ref2.getPartitionKey(), ref2.getRowKey(), ref2.getClass()); fail(SR.RETRIEVE_MUST_BE_ONLY_OPERATION_IN_BATCH); } catch (IllegalArgumentException ex) { assertEquals(ex.getMessage(), SR.RETRIEVE_MUST_BE_ONLY_OPERATION_IN_BATCH); } }
@Test public void testBatchEmptyQuery() throws StorageException { TableRequestOptions options = new TableRequestOptions(); options.setTablePayloadFormat(TablePayloadFormat.Json); // insert entity Class1 ref = TableTestHelper.generateRandomEntity("jxscl_odata"); TableBatchOperation batch = new TableBatchOperation(); batch.retrieve(ref.getPartitionKey(), ref.getRowKey(), ref.getClass()); ArrayList<TableResult> results = this.table.execute(batch, options, null); assertEquals(results.size(), 1); assertNull(results.get(0).getResult()); assertEquals(results.get(0).getHttpStatusCode(), HttpURLConnection.HTTP_NOT_FOUND); }
@Test public void testBatchRetrieveAndOneMoreOperationShouldThrow() { Class1 ref2 = TableTestHelper.generateRandomEntity("jxscl_odata"); try { TableBatchOperation batch = new TableBatchOperation(); batch.insert(TableTestHelper.generateRandomEntity("jxscl_odata")); batch.retrieve(ref2.getPartitionKey(), ref2.getRowKey(), ref2.getClass()); fail(); } catch (IllegalArgumentException ex) { assertEquals(ex.getMessage(), SR.RETRIEVE_MUST_BE_ONLY_OPERATION_IN_BATCH); } try { TableBatchOperation batch = new TableBatchOperation(); batch.retrieve(ref2.getPartitionKey(), ref2.getRowKey(), ref2.getClass()); batch.insert(TableTestHelper.generateRandomEntity("jxscl_odata")); fail(); } catch (IllegalArgumentException ex) { assertEquals(ex.getMessage(), SR.RETRIEVE_MUST_BE_ONLY_OPERATION_IN_BATCH); } }
private void testBatchRetrieve(TableRequestOptions options) throws StorageException { // insert entity Class1 ref = TableTestHelper.generateRandomEntity("jxscl_odata"); this.table.execute(TableOperation.insert(ref), options, null); TableBatchOperation batch = new TableBatchOperation(); batch.retrieve(ref.getPartitionKey(), ref.getRowKey(), ref.getClass()); ArrayList<TableResult> results = this.table.execute(batch, options, null); assertEquals(results.size(), 1); assertEquals(results.get(0).getHttpStatusCode(), HttpURLConnection.HTTP_OK); Class1 retrievedRef = results.get(0).getResultAsType(); assertEquals(ref.getA(), retrievedRef.getA()); assertEquals(ref.getB(), retrievedRef.getB()); assertEquals(ref.getC(), retrievedRef.getC()); assertTrue(Arrays.equals(ref.getD(), retrievedRef.getD())); this.table.execute(TableOperation.delete(ref), options, null); }
private void tableBatchRetrieveWithEntityResolver(TableRequestOptions options) throws StorageException { // insert entity Class1 randEnt = TableTestHelper.generateRandomEntity("jxscl_odata"); this.table.execute(TableOperation.insert(randEnt), options, null); TableBatchOperation batch = new TableBatchOperation(); batch.retrieve(randEnt.getPartitionKey(), randEnt.getRowKey(), new EntityResolver<Class1>() { @Override public Class1 resolve(String partitionKey, String rowKey, Date timeStamp, HashMap<String, EntityProperty> properties, String etag) { assertEquals(properties.size(), 4); Class1 ref = new Class1(); ref.setA(properties.get("A").getValueAsString()); ref.setB(properties.get("B").getValueAsString()); ref.setC(properties.get("C").getValueAsString()); ref.setD(properties.get("D").getValueAsByteArray()); return ref; } }); ArrayList<TableResult> results = this.table.execute(batch, options, null); assertEquals(results.size(), 1); Class1 ent = (Class1) results.get(0).getResult(); // Validate results assertEquals(ent.getA(), randEnt.getA()); assertEquals(ent.getB(), randEnt.getB()); assertEquals(ent.getC(), randEnt.getC()); assertTrue(Arrays.equals(ent.getD(), randEnt.getD())); }
batch.retrieve(ref.getPartitionKey(), ref.getRowKey(), Class1.class); res = this.table.execute(batch, options, null).get(0); batch.retrieve(ref.getPartitionKey(), ref.getRowKey(), Class1.class); res = this.table.execute(batch, options, null).get(0); batch.retrieve(ref.getPartitionKey(), ref.getRowKey(), Class1.class); res = this.table.execute(batch, options, null).get(0);