Search in sources :

Example 1 with Message

use of org.apache.qpid.proton.message.Message in project azure-iot-sdk-java by Azure.

the class AmqpSendHandlerTest method createProtonObjects.

private void createProtonObjects() {
    String exceptionMessage = "Not expected function called";
    message = Proton.message();
    messageWithException = new Message() {

        @Override
        public boolean isDurable() {
            return false;
        }

        @Override
        public long getDeliveryCount() {
            return 0;
        }

        @Override
        public short getPriority() {
            return 0;
        }

        @Override
        public boolean isFirstAcquirer() {
            return false;
        }

        @Override
        public long getTtl() {
            return 0;
        }

        @Override
        public void setDurable(boolean b) {
        }

        @Override
        public void setTtl(long l) {
        }

        @Override
        public void setDeliveryCount(long l) {
        }

        @Override
        public void setFirstAcquirer(boolean b) {
        }

        @Override
        public void setPriority(short i) {
        }

        @Override
        public Object getMessageId() {
            return null;
        }

        @Override
        public long getGroupSequence() {
            return 0;
        }

        @Override
        public String getReplyToGroupId() {
            return null;
        }

        @Override
        public long getCreationTime() {
            return 0;
        }

        @Override
        public String getAddress() {
            return null;
        }

        @Override
        public byte[] getUserId() {
            return new byte[0];
        }

        @Override
        public String getReplyTo() {
            return null;
        }

        @Override
        public String getGroupId() {
            return null;
        }

        @Override
        public String getContentType() {
            return null;
        }

        @Override
        public long getExpiryTime() {
            return 0;
        }

        @Override
        public Object getCorrelationId() {
            return null;
        }

        @Override
        public String getContentEncoding() {
            return null;
        }

        @Override
        public String getSubject() {
            return null;
        }

        @Override
        public void setGroupSequence(long l) {
        }

        @Override
        public void setUserId(byte[] bytes) {
        }

        @Override
        public void setCreationTime(long l) {
        }

        @Override
        public void setSubject(String s) {
        }

        @Override
        public void setGroupId(String s) {
        }

        @Override
        public void setAddress(String s) {
        }

        @Override
        public void setExpiryTime(long l) {
        }

        @Override
        public void setReplyToGroupId(String s) {
        }

        @Override
        public void setContentEncoding(String s) {
        }

        @Override
        public void setContentType(String s) {
        }

        @Override
        public void setReplyTo(String s) {
        }

        @Override
        public void setCorrelationId(Object o) {
        }

        @Override
        public void setMessageId(Object o) {
        }

        @Override
        public Header getHeader() {
            return null;
        }

        @Override
        public DeliveryAnnotations getDeliveryAnnotations() {
            return null;
        }

        @Override
        public MessageAnnotations getMessageAnnotations() {
            return null;
        }

        @Override
        public Properties getProperties() {
            return null;
        }

        @Override
        public ApplicationProperties getApplicationProperties() {
            return null;
        }

        @Override
        public Section getBody() {
            return null;
        }

        @Override
        public Footer getFooter() {
            return null;
        }

        @Override
        public void setHeader(Header header) {
        }

        @Override
        public void setDeliveryAnnotations(DeliveryAnnotations deliveryAnnotations) {
        }

        @Override
        public void setMessageAnnotations(MessageAnnotations messageAnnotations) {
        }

        @Override
        public void setProperties(Properties properties) {
        }

        @Override
        public void setApplicationProperties(ApplicationProperties applicationProperties) {
        }

        @Override
        public void setBody(Section section) {
        }

        @Override
        public void setFooter(Footer footer) {
        }

        @Override
        public int decode(byte[] bytes, int i, int i1) {
            return 0;
        }

        @Override
        public int encode(byte[] bytes, int i, int i1) {
            if (exceptionCount == 0) {
                exceptionCount++;
                throw new BufferOverflowException();
            } else {
                return 0;
            }
        }

        @Override
        public void clear() {
        }

        @Override
        public MessageError getError() {
            return null;
        }
    };
    sender = new Sender() {

        @Override
        public Record attachments() {
            return null;
        }

        @Override
        public EndpointState getLocalState() {
            return null;
        }

        @Override
        public EndpointState getRemoteState() {
            return null;
        }

        @Override
        public ErrorCondition getCondition() {
            return null;
        }

        @Override
        public void setCondition(ErrorCondition errorCondition) {
        }

        @Override
        public ErrorCondition getRemoteCondition() {
            return null;
        }

        @Override
        public void free() {
        }

        @Override
        public void open() {
        }

        @Override
        public void close() {
        }

        @Override
        public void setContext(Object o) {
        }

        @Override
        public Object getContext() {
            return null;
        }

        @Override
        public void offer(int i) {
        }

        @Override
        public int send(byte[] bytes, int i, int i1) {
            return 0;
        }

        @Override
        public int send(ReadableBuffer readableBuffer) {
            return 0;
        }

        @Override
        public void abort() {
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public Delivery delivery(byte[] bytes) {
            return delivery;
        }

        @Override
        public Delivery delivery(byte[] bytes, int i, int i1) {
            return null;
        }

        @Override
        public Delivery head() {
            return null;
        }

        @Override
        public Delivery current() {
            return null;
        }

        @Override
        public boolean advance() {
            return false;
        }

        @Override
        public Source getSource() {
            return null;
        }

        @Override
        public org.apache.qpid.proton.amqp.transport.Target getTarget() {
            return null;
        }

        @Override
        public void setSource(Source source) {
        }

        @Override
        public void setTarget(org.apache.qpid.proton.amqp.transport.Target target) {
        }

        @Override
        public Source getRemoteSource() {
            return null;
        }

        @Override
        public org.apache.qpid.proton.amqp.transport.Target getRemoteTarget() {
            return null;
        }

        @Override
        public Link next(EnumSet<EndpointState> enumSet, EnumSet<EndpointState> enumSet1) {
            return null;
        }

        @Override
        public int getCredit() {
            return 1;
        }

        @Override
        public int getQueued() {
            return 0;
        }

        @Override
        public int getUnsettled() {
            return 0;
        }

        @Override
        public Session getSession() {
            return session;
        }

        @Override
        public SenderSettleMode getSenderSettleMode() {
            return null;
        }

        @Override
        public void setSenderSettleMode(SenderSettleMode senderSettleMode) {
        }

        @Override
        public SenderSettleMode getRemoteSenderSettleMode() {
            return null;
        }

        @Override
        public ReceiverSettleMode getReceiverSettleMode() {
            return null;
        }

        @Override
        public void setReceiverSettleMode(ReceiverSettleMode receiverSettleMode) {
        }

        @Override
        public ReceiverSettleMode getRemoteReceiverSettleMode() {
            return null;
        }

        @Override
        public void setRemoteSenderSettleMode(SenderSettleMode senderSettleMode) {
        }

        @Override
        public Map<Symbol, Object> getProperties() {
            return null;
        }

        @Override
        public void setProperties(Map<Symbol, Object> map) {
        }

        @Override
        public Map<Symbol, Object> getRemoteProperties() {
            return null;
        }

        @Override
        public int drained() {
            return 0;
        }

        @Override
        public int getRemoteCredit() {
            return 0;
        }

        @Override
        public boolean getDrain() {
            return false;
        }

        @Override
        public void detach() {
        }

        @Override
        public boolean detached() {
            return false;
        }

        @Override
        public void setOfferedCapabilities(Symbol[] symbols) {
        }

        @Override
        public Symbol[] getOfferedCapabilities() {
            return new Symbol[0];
        }

        @Override
        public Symbol[] getRemoteOfferedCapabilities() {
            return new Symbol[0];
        }

        @Override
        public void setDesiredCapabilities(Symbol[] symbols) {
        }

        @Override
        public Symbol[] getDesiredCapabilities() {
            return new Symbol[0];
        }

        @Override
        public Symbol[] getRemoteDesiredCapabilities() {
            return new Symbol[0];
        }
    };
    event = new Event() {

        @Override
        public EventType getEventType() {
            return null;
        }

        @Override
        public Event.Type getType() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Object getContext() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Handler getRootHandler() {
            return null;
        }

        @Override
        public void dispatch(Handler hndlr) throws HandlerException {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public void redispatch(EventType eventType, Handler handler) throws HandlerException {
        }

        @Override
        public void delegate() throws HandlerException {
        }

        @Override
        public Connection getConnection() {
            return connection;
        }

        @Override
        public Session getSession() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Link getLink() {
            return sender;
        }

        @Override
        public Sender getSender() {
            return null;
        }

        @Override
        public Receiver getReceiver() {
            return null;
        }

        @Override
        public Delivery getDelivery() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Transport getTransport() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Reactor getReactor() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Selectable getSelectable() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Task getTask() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Event copy() {
            throw new UnsupportedOperationException(exceptionMessage);
        }

        @Override
        public Record attachments() {
            throw new UnsupportedOperationException(exceptionMessage);
        }
    };
}
Also used : Task(org.apache.qpid.proton.reactor.Task) ReadableBuffer(org.apache.qpid.proton.codec.ReadableBuffer) Reactor(org.apache.qpid.proton.reactor.Reactor) AmqpSendHandler(com.microsoft.azure.sdk.iot.service.transport.amqps.AmqpSendHandler) Message(org.apache.qpid.proton.message.Message) Symbol(org.apache.qpid.proton.amqp.Symbol) Properties(org.apache.qpid.proton.amqp.messaging.Properties) Source(org.apache.qpid.proton.amqp.transport.Source) Target(org.apache.qpid.proton.amqp.messaging.Target) MessageError(org.apache.qpid.proton.message.MessageError) Selectable(org.apache.qpid.proton.reactor.Selectable) BufferOverflowException(java.nio.BufferOverflowException) org.apache.qpid.proton.amqp.transport(org.apache.qpid.proton.amqp.transport)

Example 2 with Message

use of org.apache.qpid.proton.message.Message in project azure-iot-sdk-java by Azure.

the class AmqpSendHandlerTest method onLinkFlowBufferOverflow_call_flow_ok.

// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_017: [The event handler shall get the Sender (Proton) object from the link]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_018: [The event handler shall encode the message and copy to the byte buffer]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_019: [The event handler shall set the delivery tag on the Sender (Proton) object]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_020: [The event handler shall send the encoded bytes]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_021: [The event handler shall close the Sender, Session and Connection]
@Test
public void onLinkFlowBufferOverflow_call_flow_ok() throws UnsupportedEncodingException {
    // Arrange
    String hostName = "aaa";
    String userName = "bbb";
    String sasToken = "ccc";
    String hostAddr = hostName + ":5671";
    String deviceId = "deviceId";
    String content = "abcdefghijklmnopqrst";
    com.microsoft.azure.sdk.iot.service.Message iotMessage = new com.microsoft.azure.sdk.iot.service.Message(content);
    String endpoint = "/messages/devicebound";
    exceptionCount = 0;
    IotHubServiceClientProtocol iotHubServiceClientProtocol = IotHubServiceClientProtocol.AMQPS;
    createProtonObjects();
    AmqpSendHandler amqpSendHandler = new AmqpSendHandler(hostName, userName, sasToken, iotHubServiceClientProtocol);
    Queue<Message> testMessagesToBeSent = new LinkedBlockingQueue<>();
    testMessagesToBeSent.add(messageWithException);
    Deencapsulation.setField(amqpSendHandler, "messagesToBeSent", testMessagesToBeSent);
    // Assert
    new Expectations() {

        {
            link = event.getLink();
            link.getCredit();
        }
    };
    // Act
    amqpSendHandler.onLinkFlow(event);
}
Also used : Expectations(mockit.Expectations) Message(org.apache.qpid.proton.message.Message) AmqpSendHandler(com.microsoft.azure.sdk.iot.service.transport.amqps.AmqpSendHandler) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) IotHubServiceClientProtocol(com.microsoft.azure.sdk.iot.service.IotHubServiceClientProtocol) Test(org.junit.Test)

Example 3 with Message

use of org.apache.qpid.proton.message.Message in project azure-iot-sdk-java by Azure.

the class AmqpSendHandlerTest method createProtonMessage_creates_Message_and_sets_Properties.

// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_004: [The function shall create a new Message (Proton) object]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_005: [The function shall set the “to” property on the Message object using the created device path]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_006: [The function shall create a Binary (Proton) object from the content string]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_007: [The function shall create a data Section (Proton) object from the Binary]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_008: [The function shall set the Message body to the created data section]
@Test
public void createProtonMessage_creates_Message_and_sets_Properties() throws UnsupportedEncodingException {
    // Arrange
    String hostName = "aaa";
    String userName = "bbb";
    String sasToken = "ccc";
    String deviceId = "deviceId";
    String content = "abcdefghijklmnopqrst";
    String toProperty = "/devices/deviceId/messages/devicebound";
    IotHubServiceClientProtocol iotHubServiceClientProtocol = IotHubServiceClientProtocol.AMQPS;
    AmqpSendHandler amqpSendHandler = new AmqpSendHandler(hostName, userName, sasToken, iotHubServiceClientProtocol);
    com.microsoft.azure.sdk.iot.service.Message iotMessage = new com.microsoft.azure.sdk.iot.service.Message(content);
    Map<String, String> userDefinedProperties = new HashMap<>(5);
    userDefinedProperties.put("key1", "value1");
    userDefinedProperties.put("key2", "value2");
    userDefinedProperties.put("key3", "value3");
    userDefinedProperties.put("key4", "value4");
    userDefinedProperties.put("key5", "value5");
    iotMessage.setProperties(userDefinedProperties);
    // Assert
    new Expectations() {

        {
            message = Proton.message();
            new Properties();
            result = properties;
            properties.setTo(toProperty);
            message.setProperties(properties);
            binary = new Binary(content.getBytes());
            section = new Data(binary);
            message.setApplicationProperties((ApplicationProperties) any);
            message.setBody(section);
        }
    };
    // Act
    amqpSendHandler.createProtonMessage(deviceId, iotMessage);
    new Verifications() {

        {
            properties.setTo(toProperty);
            properties.setMessageId(any);
            properties.setAbsoluteExpiryTime((Date) any);
            properties.setCorrelationId(any);
        }
    };
}
Also used : Expectations(mockit.Expectations) AmqpSendHandler(com.microsoft.azure.sdk.iot.service.transport.amqps.AmqpSendHandler) Message(org.apache.qpid.proton.message.Message) Properties(org.apache.qpid.proton.amqp.messaging.Properties) Verifications(mockit.Verifications) IotHubServiceClientProtocol(com.microsoft.azure.sdk.iot.service.IotHubServiceClientProtocol) Binary(org.apache.qpid.proton.amqp.Binary) Test(org.junit.Test)

Example 4 with Message

use of org.apache.qpid.proton.message.Message in project azure-iot-sdk-java by Azure.

the class AmqpSendHandlerTest method onLinkFlow_call_flow_ok.

// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_017: [The event handler shall get the Sender (Proton) object from the link]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_018: [The event handler shall encode the message and copy to the byte buffer]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_019: [The event handler shall set the delivery tag on the Sender (Proton) object]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_020: [The event handler shall send the encoded bytes]
// Tests_SRS_SERVICE_SDK_JAVA_AMQPSENDHANDLER_12_021: [The event handler shall close the Sender, Session and Connection]
@Test
public void onLinkFlow_call_flow_ok() throws UnsupportedEncodingException {
    // Arrange
    String hostName = "aaa";
    String userName = "bbb";
    String sasToken = "ccc";
    String hostAddr = hostName + ":5671";
    String deviceId = "deviceId";
    String content = "abcdefghijklmnopqrst";
    com.microsoft.azure.sdk.iot.service.Message iotMessage = new com.microsoft.azure.sdk.iot.service.Message(content);
    String endpoint = "/messages/devicebound";
    IotHubServiceClientProtocol iotHubServiceClientProtocol = IotHubServiceClientProtocol.AMQPS;
    createProtonObjects();
    AmqpSendHandler amqpSendHandler = new AmqpSendHandler(hostName, userName, sasToken, iotHubServiceClientProtocol);
    amqpSendHandler.createProtonMessage(deviceId, iotMessage);
    // Assert
    new Expectations() {

        {
            link = event.getLink();
            link.getCredit();
            byte[] buffer = new byte[1024];
            message.encode(buffer, 0, 1024);
        }
    };
    // Act
    amqpSendHandler.onLinkFlow(event);
}
Also used : Expectations(mockit.Expectations) Message(org.apache.qpid.proton.message.Message) AmqpSendHandler(com.microsoft.azure.sdk.iot.service.transport.amqps.AmqpSendHandler) IotHubServiceClientProtocol(com.microsoft.azure.sdk.iot.service.IotHubServiceClientProtocol) Test(org.junit.Test)

Aggregations

AmqpSendHandler (com.microsoft.azure.sdk.iot.service.transport.amqps.AmqpSendHandler)4 Message (org.apache.qpid.proton.message.Message)4 IotHubServiceClientProtocol (com.microsoft.azure.sdk.iot.service.IotHubServiceClientProtocol)3 Expectations (mockit.Expectations)3 Test (org.junit.Test)3 Properties (org.apache.qpid.proton.amqp.messaging.Properties)2 BufferOverflowException (java.nio.BufferOverflowException)1 LinkedBlockingQueue (java.util.concurrent.LinkedBlockingQueue)1 Verifications (mockit.Verifications)1 Binary (org.apache.qpid.proton.amqp.Binary)1 Symbol (org.apache.qpid.proton.amqp.Symbol)1 Target (org.apache.qpid.proton.amqp.messaging.Target)1 org.apache.qpid.proton.amqp.transport (org.apache.qpid.proton.amqp.transport)1 Source (org.apache.qpid.proton.amqp.transport.Source)1 ReadableBuffer (org.apache.qpid.proton.codec.ReadableBuffer)1 MessageError (org.apache.qpid.proton.message.MessageError)1 Reactor (org.apache.qpid.proton.reactor.Reactor)1 Selectable (org.apache.qpid.proton.reactor.Selectable)1 Task (org.apache.qpid.proton.reactor.Task)1