Search in sources :

Example 26 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testStartPeekHandleDeletionError.

@Test
public void testStartPeekHandleDeletionError() {
    try {
        properties.peekMessages.setValue(true);
        properties.deleteMessages.setValue(true);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        messages.add(new CloudQueueMessage("message-1"));
        when(queueService.peekMessages(anyString(), anyInt())).thenReturn(new Iterable<CloudQueueMessage>() {

            @Override
            public Iterator<CloudQueueMessage> iterator() {
                return new DummyCloudQueueMessageIterator(messages);
            }
        });
        doAnswer(new Answer<Void>() {

            @Override
            public Void answer(InvocationOnMock invocation) throws Throwable {
                throw new StorageException("code", "message-1 can't be deleted", new RuntimeException());
            }
        }).when(queueService).deleteMessage(anyString(), any(CloudQueueMessage.class));
        boolean startable = reader.start();
        assertTrue(startable);
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Iterator(java.util.Iterator) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Example 27 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testGetCurrentWhenNotAdvancable.

@Test(expected = NoSuchElementException.class)
public void testGetCurrentWhenNotAdvancable() {
    try {
        properties.peekMessages.setValue(true);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        messages.add(new CloudQueueMessage("message-1"));
        when(queueService.peekMessages(anyString(), anyInt())).thenReturn(new Iterable<CloudQueueMessage>() {

            @Override
            public Iterator<CloudQueueMessage> iterator() {
                return new DummyCloudQueueMessageIterator(messages);
            }
        });
        boolean startable = reader.start();
        assertTrue(startable);
        assertNotNull(reader.getCurrent());
        boolean advancable = reader.advance();
        assertFalse(advancable);
        // should throw NoSuchElementException
        reader.getCurrent();
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) Iterator(java.util.Iterator) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Example 28 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testAdvanceWhenNonStartble.

@Test
public void testAdvanceWhenNonStartble() {
    try {
        properties.peekMessages.setValue(true);
        properties.deleteMessages.setValue(true);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        when(queueService.peekMessages(anyString(), anyInt())).thenReturn(new Iterable<CloudQueueMessage>() {

            @Override
            public Iterator<CloudQueueMessage> iterator() {
                return new DummyCloudQueueMessageIterator(messages);
            }
        });
        doAnswer(new Answer<Void>() {

            @Override
            public Void answer(InvocationOnMock invocation) throws Throwable {
                throw new StorageException("code", "message-1 can't be deleted", new RuntimeException());
            }
        }).when(queueService).deleteMessage(anyString(), any(CloudQueueMessage.class));
        boolean startable = reader.start();
        assertFalse(startable);
        boolean advancable = reader.advance();
        assertFalse(advancable);
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Iterator(java.util.Iterator) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Example 29 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testStartPeekAndDeleteMessage.

@Test
public void testStartPeekAndDeleteMessage() {
    try {
        properties.peekMessages.setValue(true);
        properties.deleteMessages.setValue(true);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        messages.add(new CloudQueueMessage("message-1"));
        when(queueService.peekMessages(anyString(), anyInt())).thenReturn(new Iterable<CloudQueueMessage>() {

            @Override
            public Iterator<CloudQueueMessage> iterator() {
                return new DummyCloudQueueMessageIterator(messages);
            }
        });
        doAnswer(new Answer<Void>() {

            @Override
            public Void answer(InvocationOnMock invocation) throws Throwable {
                return null;
            }
        }).when(queueService).deleteMessage(anyString(), any(CloudQueueMessage.class));
        boolean startable = reader.start();
        assertTrue(startable);
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Iterator(java.util.Iterator) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Example 30 with CloudQueueMessage

use of com.microsoft.azure.storage.queue.CloudQueueMessage in project components by Talend.

the class AzureStorageQueueInputReaderTest method testAdvanceWithMessageDeletion.

@Test
public void testAdvanceWithMessageDeletion() {
    try {
        properties.peekMessages.setValue(true);
        properties.deleteMessages.setValue(true);
        AzureStorageQueueSource source = new AzureStorageQueueSource();
        ValidationResult vr = source.initialize(getDummyRuntimeContiner(), properties);
        assertNotNull(vr);
        assertEquals(ValidationResult.OK.getStatus(), vr.getStatus());
        reader = (AzureStorageQueueInputReader) source.createReader(getDummyRuntimeContiner());
        // inject mocked service
        reader.queueService = queueService;
        final List<CloudQueueMessage> messages = new ArrayList<>();
        messages.add(new CloudQueueMessage("message-1"));
        messages.add(new CloudQueueMessage("message-2"));
        messages.add(new CloudQueueMessage("message-3"));
        when(queueService.peekMessages(anyString(), anyInt())).thenReturn(new Iterable<CloudQueueMessage>() {

            @Override
            public Iterator<CloudQueueMessage> iterator() {
                return new DummyCloudQueueMessageIterator(messages);
            }
        });
        doAnswer(new Answer<Void>() {

            @Override
            public Void answer(InvocationOnMock invocation) throws Throwable {
                return null;
            }
        }).when(queueService).deleteMessage(anyString(), any(CloudQueueMessage.class));
        boolean startable = reader.start();
        assertTrue(startable);
        boolean advancable = reader.advance();
        assertTrue(advancable);
    } catch (IOException | InvalidKeyException | URISyntaxException | StorageException e) {
        fail("sould not throw " + e.getMessage());
    }
}
Also used : CloudQueueMessage(com.microsoft.azure.storage.queue.CloudQueueMessage) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) ValidationResult(org.talend.daikon.properties.ValidationResult) InvalidKeyException(java.security.InvalidKeyException) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Iterator(java.util.Iterator) StorageException(com.microsoft.azure.storage.StorageException) AzureBaseTest(org.talend.components.azurestorage.AzureBaseTest) Test(org.junit.Test)

Aggregations

CloudQueueMessage (com.microsoft.azure.storage.queue.CloudQueueMessage)34 Test (org.junit.Test)24 StorageException (com.microsoft.azure.storage.StorageException)21 IOException (java.io.IOException)21 URISyntaxException (java.net.URISyntaxException)21 InvalidKeyException (java.security.InvalidKeyException)21 ArrayList (java.util.ArrayList)20 AzureBaseTest (org.talend.components.azurestorage.AzureBaseTest)20 ValidationResult (org.talend.daikon.properties.ValidationResult)20 Iterator (java.util.Iterator)18 CloudQueue (com.microsoft.azure.storage.queue.CloudQueue)9 InvocationOnMock (org.mockito.invocation.InvocationOnMock)8 IndexedRecord (org.apache.avro.generic.IndexedRecord)6 CloudQueueClient (com.microsoft.azure.storage.queue.CloudQueueClient)3 AzureCmdException (com.microsoft.azuretools.azurecommons.helpers.AzureCmdException)3 Field (org.apache.avro.Schema.Field)3 TAzureStorageQueueOutputProperties (org.talend.components.azurestorage.queue.tazurestoragequeueoutput.TAzureStorageQueueOutputProperties)3 NotNull (com.microsoft.azuretools.azurecommons.helpers.NotNull)2 QueueMessage (com.microsoft.tooling.msservices.model.storage.QueueMessage)2 Matchers.anyString (org.mockito.Matchers.anyString)2