@Override public Void preProcessResponse(CloudQueue queue, CloudQueueClient client, OperationContext context) throws Exception { if (this.getResult().getStatusCode() != HttpURLConnection.HTTP_CREATED) { this.setNonExceptionedRetryableFailure(true); return null; } // Parse the returned messages CloudQueueMessage returnedMessage = QueueMessageHandler.readMessages( this.getConnection().getInputStream(), queue.shouldEncodeMessage).get(0); message.setInsertionTime(returnedMessage.getInsertionTime()); message.setExpirationTime(returnedMessage.getExpirationTime()); message.setNextVisibleTime(returnedMessage.getNextVisibleTime()); message.setMessageId(returnedMessage.getMessageId()); message.setPopReceipt(returnedMessage.getPopReceipt()); return null; } };
@Override public Void preProcessResponse(CloudQueue queue, CloudQueueClient client, OperationContext context) throws Exception { if (this.getResult().getStatusCode() != HttpURLConnection.HTTP_CREATED) { this.setNonExceptionedRetryableFailure(true); return null; } // Parse the returned messages CloudQueueMessage returnedMessage = QueueMessageHandler.readMessages( this.getConnection().getInputStream(), queue.shouldEncodeMessage).get(0); message.setInsertionTime(returnedMessage.getInsertionTime()); message.setExpirationTime(returnedMessage.getExpirationTime()); message.setNextVisibleTime(returnedMessage.getNextVisibleTime()); message.setMessageId(returnedMessage.getMessageId()); message.setPopReceipt(returnedMessage.getPopReceipt()); return null; } };
break; case TAzureStorageQueueInputProperties.FIELD_NEXT_VISIBLE_TIME: record.put(f.pos(), current.getNextVisibleTime()); break; default:
break; case TAzureStorageQueueInputProperties.FIELD_NEXT_VISIBLE_TIME: record.put(f.pos(), current.getNextVisibleTime()); break; default:
@Test @Category({ DevFabricTests.class, DevStoreTests.class, SlowTests.class }) public void testUpdateMessageFullPass() throws StorageException, InterruptedException { CloudQueueMessage message = new CloudQueueMessage("message"); this.queue.addMessage(message, 20, 0, null, null); CloudQueueMessage message1 = this.queue.retrieveMessage(); String popreceipt1 = message1.getPopReceipt(); Date NextVisibleTim1 = message1.getNextVisibleTime(); this.queue.updateMessage(message1, 100, EnumSet.of(MessageUpdateFields.VISIBILITY), null, null); String popreceipt2 = message1.getPopReceipt(); Date NextVisibleTim2 = message1.getNextVisibleTime(); assertTrue(popreceipt2 != popreceipt1); assertTrue(NextVisibleTim1.before(NextVisibleTim2)); Thread.sleep(2000); String newMesage = message.getMessageContentAsString() + "updated"; message.setMessageContent(newMesage); OperationContext oc = new OperationContext(); this.queue.updateMessage(message1, 100, EnumSet.of(MessageUpdateFields.CONTENT), null, oc); assertEquals(oc.getLastResult().getStatusCode(), HttpURLConnection.HTTP_NO_CONTENT); String popreceipt3 = message1.getPopReceipt(); Date NextVisibleTim3 = message1.getNextVisibleTime(); assertTrue(popreceipt3 != popreceipt2); assertTrue(NextVisibleTim2.before(NextVisibleTim3)); assertTrue(this.queue.retrieveMessage() == null); this.queue.updateMessage(message1, 0, EnumSet.of(MessageUpdateFields.VISIBILITY), null, null); CloudQueueMessage messageFromGet = this.queue.retrieveMessage(); assertEquals(messageFromGet.getMessageContentAsString(), message1.getMessageContentAsString()); }
@Test @Category({ DevFabricTests.class, DevStoreTests.class, SlowTests.class }) public void testRetrieveMessage() throws StorageException, InterruptedException { this.queue.addMessage(new CloudQueueMessage("message"), 20, 0, null, null); OperationContext opContext = new OperationContext(); CloudQueueMessage message1 = this.queue.retrieveMessage(10, null /*QueueRequestOptions*/, opContext); Date expirationTime1 = message1.getExpirationTime(); Date insertionTime1 = message1.getInsertionTime(); Date nextVisibleTime1 = message1.getNextVisibleTime(); assertEquals(HttpURLConnection.HTTP_OK, opContext.getLastResult().getStatusCode()); this.queue.deleteMessage(message1); Thread.sleep(2000); this.queue.addMessage(new CloudQueueMessage("message"), 20, 0, null, null); CloudQueueMessage message2 = this.queue.retrieveMessage(); Date expirationTime2 = message2.getExpirationTime(); Date insertionTime2 = message2.getInsertionTime(); Date nextVisibleTime2 = message2.getNextVisibleTime(); this.queue.deleteMessage(message2); assertTrue(expirationTime1.before(expirationTime2)); assertTrue(insertionTime1.before(insertionTime2)); assertTrue(nextVisibleTime1.before(nextVisibleTime2)); }
private void VerifyAddMessageResult(CloudQueueMessage originalMessage, String expectedMessageContent) { assertFalse(Utility.isNullOrEmpty(originalMessage.getId())); assertNotNull(originalMessage.getInsertionTime()); assertNotNull(originalMessage.getExpirationTime()); assertFalse(Utility.isNullOrEmpty(originalMessage.getPopReceipt())); assertTrue(originalMessage.messageContent.equals(expectedMessageContent)); assertNotNull(originalMessage.getNextVisibleTime()); } }