use of com.microsoft.azure.sdk.iot.service.FileUploadNotification in project azure-iot-sdk-java by Azure.
the class FileUploadNotificationTest method constructorThrowsOnNullDate.
// Tests_SRS_SERVICE_SDK_JAVA_FILEUPLOADNOTIFICATION_25_002: [** If any of the parameters are null or empty then this method shall throw IllegalArgumentException.**]
@Test(expected = IllegalArgumentException.class)
public void constructorThrowsOnNullDate() throws IOException {
// arrange
final String actualDeviceId = "TestDeviceId";
final String actualBlobUri = "TestblobUri";
final String actualBlobName = "TestBlobName";
final Date actualLastUpdatedTimeDate = null;
final Long actualBlobSizeInBytes = 10000L;
final Date actualEnqueuedTimeUtcDate = new Date();
// act
FileUploadNotification testFileUploadNotification = new FileUploadNotification(actualDeviceId, actualBlobUri, actualBlobName, actualLastUpdatedTimeDate, actualBlobSizeInBytes, actualEnqueuedTimeUtcDate);
// assert
assertEquals(testFileUploadNotification.getDeviceId(), actualDeviceId);
assertEquals(testFileUploadNotification.getBlobName(), actualBlobName);
assertEquals(testFileUploadNotification.getBlobUri(), actualBlobUri);
assertEquals(testFileUploadNotification.getLastUpdatedTimeDate(), actualLastUpdatedTimeDate);
assertEquals(testFileUploadNotification.getBlobSizeInBytes(), actualBlobSizeInBytes);
assertEquals(testFileUploadNotification.getEnqueuedTimeUtcDate(), actualEnqueuedTimeUtcDate);
}
use of com.microsoft.azure.sdk.iot.service.FileUploadNotification in project azure-iot-sdk-java by Azure.
the class FileUploadNotificationTest method constructorThrowsOnEmptyBlobUri.
// Tests_SRS_SERVICE_SDK_JAVA_FILEUPLOADNOTIFICATION_25_002: [** If any of the parameters are null or empty then this method shall throw IllegalArgumentException.**]
@Test(expected = IllegalArgumentException.class)
public void constructorThrowsOnEmptyBlobUri() throws IOException {
// arrange
final String actualDeviceId = "TestDeviceId";
final String actualBlobUri = "";
final String actualBlobName = "TestBlobName";
final Date actualLastUpdatedTimeDate = new Date();
final Long actualBlobSizeInBytes = 10000L;
final Date actualEnqueuedTimeUtcDate = new Date();
// act
FileUploadNotification testFileUploadNotification = new FileUploadNotification(actualDeviceId, actualBlobUri, actualBlobName, actualLastUpdatedTimeDate, actualBlobSizeInBytes, actualEnqueuedTimeUtcDate);
// assert
assertEquals(testFileUploadNotification.getDeviceId(), actualDeviceId);
assertEquals(testFileUploadNotification.getBlobName(), actualBlobName);
assertEquals(testFileUploadNotification.getBlobUri(), actualBlobUri);
assertEquals(testFileUploadNotification.getLastUpdatedTimeDate(), actualLastUpdatedTimeDate);
assertEquals(testFileUploadNotification.getBlobSizeInBytes(), actualBlobSizeInBytes);
assertEquals(testFileUploadNotification.getEnqueuedTimeUtcDate(), actualEnqueuedTimeUtcDate);
}
use of com.microsoft.azure.sdk.iot.service.FileUploadNotification in project azure-iot-sdk-java by Azure.
the class AmqpFileUploadNotificationReceive method onFeedbackReceived.
/**
* Handle on feedback received Proton event
* Parse received json and save result to a member variable
* Release semaphore for wait function
* @param feedbackJson Received Json string to process
*/
public synchronized void onFeedbackReceived(String feedbackJson) {
try {
FileUploadNotificationParser notificationParser = new FileUploadNotificationParser(feedbackJson);
fileUploadNotification = new FileUploadNotification(notificationParser.getDeviceId(), notificationParser.getBlobUri(), notificationParser.getBlobName(), notificationParser.getLastUpdatedTime(), notificationParser.getBlobSizeInBytesTag(), notificationParser.getEnqueuedTimeUtc());
} catch (Exception e) {
// this should never happen. However if it does, proton can't handle it. So guard against throwing it at proton.
log.warn("Service gave feedback message with poorly formed json, message abandoned.");
}
}
use of com.microsoft.azure.sdk.iot.service.FileUploadNotification in project azure-iot-sdk-java by Azure.
the class RoleBasedAuthenticationSample method runServiceClientSample.
private static void runServiceClientSample(String iotHubHostName, TokenCredential credential, String deviceId) {
// ServiceClient has some configurable options for setting a custom SSLContext, as well as for setting proxies.
// For this sample, the default options will be used though.
ServiceClientOptions options = ServiceClientOptions.builder().build();
// This constructor takes in your implementation of TokenCredential which allows you to use RBAC authentication
// rather than symmetric key based authentication that comes with constructors that take connection strings.
ServiceClient serviceClient = new ServiceClient(iotHubHostName, credential, IotHubServiceClientProtocol.AMQPS, options);
String cloudToDeviceMessagePayload = "This is a message sent by an RBAC authenticated service client!";
Message cloudToDeviceMessage = new Message(cloudToDeviceMessagePayload.getBytes(StandardCharsets.UTF_8));
try {
System.out.println("Sending cloud to device message to the new device");
serviceClient.send(deviceId, cloudToDeviceMessage);
System.out.println("Successfully sent cloud to device message to the new device");
} catch (IOException | IotHubException e) {
System.err.println("Failed to send a cloud to device message to the new device");
e.printStackTrace();
System.exit(-1);
}
try {
// FeedbackReceiver will use the same authentication mechanism that the ServiceClient itself uses,
// so the below APIs are also RBAC authenticated.
FeedbackReceiver feedbackReceiver = serviceClient.getFeedbackReceiver();
System.out.println("Opening feedback receiver to listen for feedback messages");
feedbackReceiver.open();
FeedbackBatch feedbackBatch = feedbackReceiver.receive(FEEDBACK_MESSAGE_LISTEN_SECONDS);
if (feedbackBatch != null) {
for (FeedbackRecord feedbackRecord : feedbackBatch.getRecords()) {
System.out.println(String.format("Feedback record received for device %s with status %s", feedbackRecord.getDeviceId(), feedbackRecord.getStatusCode()));
}
} else {
System.out.println("No feedback records were received");
}
feedbackReceiver.close();
} catch (IOException | InterruptedException e) {
System.err.println("Failed to listen for feedback messages");
e.printStackTrace();
System.exit(-1);
}
try {
// FileUploadNotificationReceiver will use the same authentication mechanism that the ServiceClient itself uses,
// so the below APIs are also RBAC authenticated.
FileUploadNotificationReceiver fileUploadNotificationReceiver = serviceClient.getFileUploadNotificationReceiver();
System.out.println("Opening file upload notification receiver and listening for file upload notifications");
fileUploadNotificationReceiver.open();
FileUploadNotification fileUploadNotification = fileUploadNotificationReceiver.receive(FILE_UPLOAD_NOTIFICATION_LISTEN_SECONDS);
if (fileUploadNotification != null) {
System.out.println("File upload notification received for device " + fileUploadNotification.getDeviceId());
} else {
System.out.println("No feedback records were received");
}
fileUploadNotificationReceiver.close();
} catch (IOException | InterruptedException e) {
System.err.println("Failed to listen for file upload notification messages");
e.printStackTrace();
System.exit(-1);
}
}
Aggregations