Exemple #1
0
 static public void ClassCleanup()
 {
     serviceClient.CloseAsync().Wait();
     System.IO.File.Delete(smallFile);
     System.IO.File.Delete(bigFile);
     TestUtil.UnInitializeEnvironment(registryManager).GetAwaiter().GetResult();
 }
Exemple #2
0
 static public void ClassCleanup()
 {
     TestUtil.UnInitializeEnvironment(registryManager);
 }
Exemple #3
0
 public static void ClassCleanup()
 {
     TestUtil.UnInitializeEnvironment(registryManager).GetAwaiter().GetResult();
 }
        private async Task DeviceClient_TokenIsRefreshed_Internal(Client.TransportType transport)
        {
            var builder = IotHubConnectionStringBuilder.Create(Configuration.IoTHub.ConnectionString);

            RegistryManager rm = await TestUtil.GetRegistryManagerAsync(DevicePrefix).ConfigureAwait(false);

            int ttl    = 6;
            int buffer = 50;

            try
            {
                Device device = await CreateDeviceClientAsync(rm).ConfigureAwait(false);

                var refresher = new TestTokenRefresher(
                    device.Id,
                    device.Authentication.SymmetricKey.PrimaryKey,
                    ttl,
                    buffer);

                DeviceClient deviceClient =
                    DeviceClient.Create(builder.HostName, refresher, transport);

                var message = new Client.Message(Encoding.UTF8.GetBytes("Hello"));

                // Create the first Token.
                Console.WriteLine($"[{DateTime.UtcNow}] OpenAsync");
                await deviceClient.OpenAsync().ConfigureAwait(false);

                Console.WriteLine($"[{DateTime.UtcNow}] SendEventAsync (1)");
                await deviceClient.SendEventAsync(message).ConfigureAwait(false);

                int countAfterOpenAndFirstSend = refresher.SafeCreateNewTokenCallCount;
                Assert.IsTrue(countAfterOpenAndFirstSend >= 1, $"[{DateTime.UtcNow}] Token should have been refreshed at least once.");

                Console.WriteLine($"[{DateTime.UtcNow}] Waiting {ttl} seconds.");

                // Wait for the Token to expire.
                await Task.Delay(ttl * 1000).ConfigureAwait(false);

                Console.WriteLine($"[{DateTime.UtcNow}] SendEventAsync (2)");
                await deviceClient.SendEventAsync(message).ConfigureAwait(false);

                // Ensure that the token was refreshed.
                if (transport == Client.TransportType.Mqtt)
                {
                    // This is not currently supported for MQTT unless the connection is dropped and re-established.
                    Assert.IsTrue(
                        refresher.SafeCreateNewTokenCallCount >= countAfterOpenAndFirstSend,
                        $"[{DateTime.UtcNow}] Token should have been refreshed after TTL expired.");
                }
                else
                {
                    Assert.IsTrue(
                        refresher.SafeCreateNewTokenCallCount >= countAfterOpenAndFirstSend + 1,
                        $"[{DateTime.UtcNow}] Token should have been refreshed after TTL expired.");
                }

                Console.WriteLine($"[{DateTime.UtcNow}] CloseAsync");
                await deviceClient.CloseAsync().ConfigureAwait(false);
            }
            finally
            {
                await TestUtil.UnInitializeEnvironment(rm).ConfigureAwait(false);
            }
        }
Exemple #5
0
 static public void ClassCleanup()
 {
     System.IO.File.Delete(smallFile);
     System.IO.File.Delete(bigFile);
     TestUtil.UnInitializeEnvironment(registryManager);
 }