use of com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection in project azure-iot-sdk-java by Azure.
the class MqttIotHubConnectionTest method receiveMessageSucceeds.
// Tests_SRS_MQTTIOTHUBCONNECTION_15_014: [The function shall attempt to consume a message
// from the received messages queue.]
@Test
public void receiveMessageSucceeds() throws IOException {
baseExpectations();
openExpectations();
final byte[] expectedMessageBody = { 0x61, 0x62, 0x63 };
new NonStrictExpectations() {
{
mockDeviceMethods.receive();
result = null;
mockDeviceTwin.receive();
result = null;
mockDeviceMessaging.receive();
result = new Message(expectedMessageBody);
}
};
MqttIotHubConnection connection = new MqttIotHubConnection(mockConfig);
connection.open();
Message message = connection.receiveMessage();
byte[] actualMessageBody = message.getBytes();
for (int i = 0; i < expectedMessageBody.length; i++) {
assertEquals(expectedMessageBody[i], actualMessageBody[i]);
}
new Verifications() {
{
mockDeviceTwin.receive();
times = 1;
mockDeviceMethods.receive();
times = 1;
mockDeviceMessaging.receive();
times = 1;
}
};
}
use of com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection in project azure-iot-sdk-java by Azure.
the class MqttIotHubConnectionTest method openDoesNothingIfAlreadyOpened.
// Tests_SRS_MQTTIOTHUBCONNECTION_15_006: [If the MQTT connection is already open, the function shall do nothing.]
@Test
public void openDoesNothingIfAlreadyOpened() throws IOException {
baseExpectations();
openExpectations();
MqttIotHubConnection connection = new MqttIotHubConnection(mockConfig);
connection.open();
connection.open();
new Verifications() {
{
new MqttMessaging(sslPrefix + iotHubHostName + sslPortSuffix, deviceId, anyString, anyString, mockIotHubSSLContext);
times = 1;
}
};
}
use of com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection in project azure-iot-sdk-java by Azure.
the class MqttIotHubConnectionTest method sendEventReturnsBadFormatIfMessageHasEmptyBody.
// Tests_SRS_MQTTIOTHUBCONNECTION_15_010: [If the message is null or empty,
// the function shall return status code BAD_FORMAT.]
@Test
public void sendEventReturnsBadFormatIfMessageHasEmptyBody(@Mocked final Message mockMsg) throws IOException {
baseExpectations();
new NonStrictExpectations() {
{
mockMsg.getBytes();
result = new byte[0];
}
};
MqttIotHubConnection connection = new MqttIotHubConnection(mockConfig);
connection.open();
IotHubStatusCode result = connection.sendEvent(mockMsg);
assertEquals(IotHubStatusCode.BAD_FORMAT, result);
}
use of com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection in project azure-iot-sdk-java by Azure.
the class MqttIotHubConnectionTest method openThrowsIOExceptionIfConnectionFailsInTwin.
@Test(expected = IOException.class)
public void openThrowsIOExceptionIfConnectionFailsInTwin() throws IOException {
baseExpectations();
new NonStrictExpectations() {
{
new IotHubSasToken(mockConfig, anyLong);
result = mockToken;
new MqttMessaging(sslPrefix + iotHubHostName + sslPortSuffix, deviceId, anyString, anyString, mockIotHubSSLContext);
result = mockDeviceMessaging;
new MqttDeviceMethod();
result = mockDeviceMethods;
new MqttDeviceTwin();
result = new IOException(anyString);
}
};
try {
MqttIotHubConnection connection = new MqttIotHubConnection(mockConfig);
connection.open();
} catch (Exception e) {
new Verifications() {
{
mockDeviceMessaging.stop();
times = 1;
mockDeviceMethods.stop();
times = 1;
}
};
throw e;
}
}
use of com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection in project azure-iot-sdk-java by Azure.
the class MqttIotHubConnectionTest method sendEventSendsDeviceTwinMessage.
@Test
public void sendEventSendsDeviceTwinMessage(@Mocked final DeviceTwinMessage mockDeviceTwinMsg) throws IOException {
baseExpectations();
openExpectations();
final byte[] msgBody = { 0x61, 0x62, 0x63 };
new NonStrictExpectations() {
{
mockDeviceTwinMsg.getBytes();
result = msgBody;
mockDeviceTwinMsg.getMessageType();
result = MessageType.DeviceTwin;
}
};
MqttIotHubConnection connection = new MqttIotHubConnection(mockConfig);
connection.open();
IotHubStatusCode result = connection.sendEvent(mockDeviceTwinMsg);
assertEquals(IotHubStatusCode.OK_EMPTY, result);
new Verifications() {
{
mockDeviceMethods.send((DeviceMethodMessage) any);
times = 0;
mockDeviceMessaging.send(mockDeviceTwinMsg);
times = 0;
mockDeviceTwin.start();
times = 1;
mockDeviceTwin.send(mockDeviceTwinMsg);
times = 1;
}
};
}
Aggregations