public void ImplicitOperatorTest()
        {
            // Arrange/Act
            var    builder          = new ModuleConnectionStringBuilder("foo.azure.com", "device1");
            string connectionString = builder.Create("module1")
                                      .WithGatewayHostName("localhost");

            Assert.Equal("HostName=foo.azure.com;DeviceId=device1;ModuleId=module1;GatewayHostName=localhost", connectionString);
        }
Exemplo n.º 2
0
        private void BuildHub(string deviceSasKey)
        {
            var currentLocation = Path.GetDirectoryName(Assembly.GetCallingAssembly().Location);

            if (_inContainer)
            {
                currentLocation = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            }

            Environment.SetEnvironmentVariable(HubService.Constants.ConfigKey.EdgeHubDevServerCertificateFile,
                                               Path.Combine(currentLocation, @"Certificates/edge-hub-dev/edge-hub-server.ca.pem"));

            Environment.SetEnvironmentVariable(HubService.Constants.ConfigKey.EdgeHubDevServerPrivateKeyFile,
                                               Path.Combine(currentLocation, @"Certificates/edge-hub-dev/edge-hub-server.pem"));

            Environment.SetEnvironmentVariable(HubService.Constants.ConfigKey.EdgeHubDevTrustBundleFile,
                                               Path.Combine(currentLocation, @"Certificates/edge-hub-dev/edge-hub-server.ca.pem"));

            Environment.SetEnvironmentVariable("AuthenticationMode", "Cloud");

            var storageFolder = Path.Combine(currentLocation, @"Storage");

            var hubStorageFolder = Path.Combine(storageFolder, HubService.Constants.EdgeHubStorageFolder);

            if (!Directory.Exists(hubStorageFolder))
            {
                Directory.CreateDirectory(hubStorageFolder);
            }

            Environment.SetEnvironmentVariable("storageFolder", storageFolder);

            var csBuilder = IotHubConnectionStringBuilder.Create(_iotHubConnectionString);

            var edgeConnectionString =
                new ModuleConnectionStringBuilder(csBuilder.HostName, _deviceId)
                .Create(Devices.Edge.Agent.Core.Constants.EdgeHubModuleIdentityName)
                .WithSharedAccessKey(deviceSasKey)
                .Build();

            Environment.SetEnvironmentVariable(Devices.Edge.Agent.Core.Constants.EdgeHubConnectionStringKey,
                                               edgeConnectionString);

            Environment.SetEnvironmentVariable(Devices.Edge.Agent.Core.Constants.IotHubConnectionStringKey,
                                               edgeConnectionString);

            var edgeHubConfiguration = new ConfigurationBuilder()
                                       .AddJsonFile("appSettings.json", true)
                                       .AddEnvironmentVariables()
                                       .Build();

            _hub._Init(edgeHubConfiguration, _container);
        }
        public void InvalidInputsTest()
        {
            Assert.Throws <ArgumentException>(() => new ModuleConnectionStringBuilder(null, "1"));
            Assert.Throws <ArgumentException>(() => new ModuleConnectionStringBuilder("", "1"));
            Assert.Throws <ArgumentException>(() => new ModuleConnectionStringBuilder("iothub", null));
            Assert.Throws <ArgumentException>(() => new ModuleConnectionStringBuilder("iothub", ""));

            var builder = new ModuleConnectionStringBuilder("foo.azure.com", "device1");

            Assert.Throws <ArgumentException>(() => builder.Create(null));
            Assert.Throws <ArgumentException>(() => builder.Create("m1").WithGatewayHostName(null));
            Assert.Throws <ArgumentException>(() => builder.Create("m1").WithSharedAccessKey(null));
        }
        string GetModuleConnectionString(Module module)
        {
            if (module.Authentication.Type != AuthenticationType.Sas)
            {
                throw new ArgumentException($"Authentication type {module.Authentication.Type} is not supported.");
            }

            ModuleConnectionStringBuilder.ModuleConnectionString moduleConnectionString = new ModuleConnectionStringBuilder(this.iothubHostName, this.deviceId)
                                                                                          .Create(module.Id)
                                                                                          .WithSharedAccessKey(module.Authentication.SymmetricKey.PrimaryKey);

            return(module.Id.Equals(Constants.EdgeHubModuleIdentityName, StringComparison.OrdinalIgnoreCase)
                ? moduleConnectionString
                : moduleConnectionString.WithGatewayHostName(this.gatewayHostName));
        }
        public void CreateConnectionStringTest(string expectedConnectionString, string iotHubHostName, string deviceId, string moduleId, string sasKey = null, string gatewayHostName = null)
        {
            // Arrange
            var builder = new ModuleConnectionStringBuilder(iotHubHostName, deviceId);

            ModuleConnectionStringBuilder.ModuleConnectionString moduleConnectionString = builder.Create(moduleId);

            if (!string.IsNullOrEmpty(sasKey))
            {
                moduleConnectionString.WithSharedAccessKey(sasKey);
            }

            if (!string.IsNullOrEmpty(gatewayHostName))
            {
                moduleConnectionString.WithGatewayHostName(gatewayHostName);
            }

            // Act
            string connectionString = moduleConnectionString.Build();

            // Assert
            Assert.Equal(expectedConnectionString, connectionString);
        }