@@ -24,6 +24,7 @@ Test all iothub device cmdlets
24
24
function Test-AzureRmIotHubDeviceLifecycle
25
25
{
26
26
$Location = Get-Location " Microsoft.Devices" " IotHubs"
27
+ $dataplaneApiVersion = ' 2020-03-13'
27
28
$IotHubName = getAssetName
28
29
$ResourceGroupName = getAssetName
29
30
$Sku = " S1"
@@ -83,6 +84,12 @@ function Test-AzureRmIotHubDeviceLifecycle
83
84
$deviceToken = New-AzIotHubSasToken - ResourceGroupName $ResourceGroupName - IotHubName $IotHubName - DeviceId $device1
84
85
Assert-StartsWith $SasTokenPrefix $deviceToken
85
86
87
+ # Test SAS token validity
88
+ $hostname = $iothub.Properties.HostName
89
+ $deviceMessageUri = " https://$hostname /devices/$device1 /messages/events?api-version=$dataplaneApiVersion "
90
+ $deviceMessageResult = Invoke-WebRequest - Uri $deviceMessageUri - Method Post - Body " test" - Headers @ {Authorization = $deviceToken }
91
+ Assert-True { $deviceMessageResult.StatusCode -eq 204 }
92
+
86
93
# Expected error while generating SAS token for device
87
94
$errorMessage = " This device does not support SAS auth."
88
95
Assert-ThrowsContains { New-AzIotHubSasToken - ResourceGroupName $ResourceGroupName - IotHubName $IotHubName - DeviceId $device3 } $errorMessage
@@ -122,7 +129,7 @@ function Test-AzureRmIotHubDeviceLifecycle
122
129
Assert-True { $updateddevice1twin3.tags.Count -eq 1 }
123
130
124
131
# Invoke direct method on device
125
- $errorMessage = ' Timed out waiting for device to connect. '
132
+ $errorMessage = " The operation failed because the requested device isn't online or hasn't registered the direct method callback. "
126
133
Assert-ThrowsContains { Invoke-AzIotHubDeviceMethod - ResourceGroupName $ResourceGroupName - IotHubName $IotHubName - DeviceId $device1 - Name " SetTelemetryInterval" } $errorMessage
127
134
128
135
# Get all devices
0 commit comments