예제 #1
0
        void VerifyResult(CreateOrUpdateCommandTestData testData, CreateOrUpdateCommand command)
        {
            Assert.Equal(testData.ModuleName, command.ModuleSpec.Name);
            Assert.Equal(testData.ModuleType, command.ModuleSpec.Type);
            Assert.Equal(testData.ImagePullPolicy, command.ModuleSpec.ImagePullPolicy);
            Assert.Equal(testData.Settings, command.ModuleSpec.Settings);

            List <Models.EnvVar> environmentVariables = command.ModuleSpec.EnvironmentVariables.ToList();

            foreach (string key in testData.EnvironmentVariables.Keys)
            {
                Assert.Equal(testData.EnvironmentVariables[key].Value, environmentVariables.First(v => v.Key.Equals(key)).Value);
            }

            Assert.Equal(testData.EdgeletWorkloadUri, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletWorkloadUriVariableName)).Value);
            Assert.Equal(testData.EdgeletAuthScheme, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletAuthSchemeVariableName)).Value);
            Assert.Equal(testData.ModuleGenerationId, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletModuleGenerationIdVariableName)).Value);
            Assert.Equal(testData.IoTHubHostname, environmentVariables.First(v => v.Key.Equals(Constants.IotHubHostnameVariableName)).Value);
            Assert.Equal(testData.DeviceId, environmentVariables.First(v => v.Key.Equals(Constants.DeviceIdVariableName)).Value);
            Assert.Equal(testData.ModuleId, environmentVariables.First(v => v.Key.Equals(Constants.ModuleIdVariableName)).Value);
            Assert.Equal(LogEventLevel.Information.ToString(), environmentVariables.First(v => v.Key.Equals(Logger.RuntimeLogLevelEnvKey)).Value);
            Assert.Equal(testData.UpstreamProtocol, environmentVariables.First(v => v.Key.Equals(Constants.UpstreamProtocolKey)).Value);
            Assert.Equal(testData.EdgeletApiVersion, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletApiVersionVariableName)).Value);

            if (testData.ModuleId.Equals(Constants.EdgeAgentModuleIdentityName))
            {
                Assert.Equal("iotedged", environmentVariables.First(v => v.Key.Equals(Constants.ModeKey)).Value);
                Assert.Equal(testData.EdgeletManagementUri, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletManagementUriVariableName)).Value);
                Assert.Equal(testData.NetworkId, environmentVariables.First(v => v.Key.Equals(Constants.NetworkIdKey)).Value);
                Assert.Equal(testData.EdgeDeviceHostname, environmentVariables.First(v => v.Key.Equals(Constants.EdgeDeviceHostNameKey)).Value);
                testData.ParentEdgeHostname.ForEach(value =>
                                                    Assert.Equal(value, environmentVariables.First(v => v.Key.Equals(Constants.GatewayHostnameVariableName)).Value));
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ParentEdgeHostnameVariableName)));
            }
            else if (testData.ModuleId.Equals(Constants.EdgeHubModuleIdentityName))
            {
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ModeKey)));
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.EdgeletManagementUriVariableName)));
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.NetworkIdKey)));
                Assert.Equal(testData.EdgeDeviceHostname, environmentVariables.First(v => v.Key.Equals(Constants.EdgeDeviceHostNameKey)).Value);
                testData.ParentEdgeHostname.ForEach(value =>
                                                    Assert.Equal(value, environmentVariables.First(v => v.Key.Equals(Constants.GatewayHostnameVariableName)).Value));
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ParentEdgeHostnameVariableName)));
            }
            else
            {
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ModeKey)));
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.EdgeletManagementUriVariableName)));
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.NetworkIdKey)));
                Assert.Equal(testData.EdgeDeviceHostname, environmentVariables.First(v => v.Key.Equals(Constants.GatewayHostnameVariableName)).Value);
                testData.ParentEdgeHostname.ForEach(value =>
                                                    Assert.Equal(value, environmentVariables.First(v => v.Key.Equals(Constants.ParentEdgeHostnameVariableName)).Value));
                Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.EdgeDeviceHostNameKey)));
            }
        }
예제 #2
0
        public void VerfiyCreateOrUpdateCommand(CreateOrUpdateCommandTestData testData)
        {
            var mocks = new CreateOrUpdateCommandMocks(testData);

            CreateOrUpdateCommand command = CreateOrUpdateCommand.BuildCreate(
                mocks.ModuleManager.Object,
                mocks.EdgeAgentModule.Object,
                mocks.EdgeAgentModuleIdentity.Object,
                mocks.ConfigSource.Object,
                testData.Settings,
                testData.EdgeDeviceHostname,
                testData.ParentEdgeHostname);

            this.VerifyResult(testData, command);
        }
예제 #3
0
            internal CreateOrUpdateCommandMocks(CreateOrUpdateCommandTestData testData)
            {
                this.ModuleManager           = new Mock <IModuleManager>();
                this.EdgeAgentModule         = new Mock <IEdgeAgentModule>();
                this.EdgeAgentModuleIdentity = new Mock <IModuleIdentity>();
                this.ConfigSource            = new Mock <IConfigSource>();
                this.Configuration           = new Mock <IConfiguration>();

                this.EdgeAgentModule.Setup(m => m.Name).Returns(testData.ModuleName);
                this.EdgeAgentModule.Setup(m => m.Type).Returns(testData.ModuleType);
                this.EdgeAgentModule.Setup(m => m.ImagePullPolicy).Returns(testData.ImagePullPolicy);
                this.EdgeAgentModule.Setup(m => m.Env).Returns(testData.EnvironmentVariables);

                this.EdgeAgentModuleIdentity.Setup(id => id.DeviceId).Returns(testData.DeviceId);
                this.EdgeAgentModuleIdentity.Setup(id => id.ModuleId).Returns(testData.ModuleId);
                this.EdgeAgentModuleIdentity.Setup(id => id.Credentials).Returns(testData.ModuleCredentials);
                this.EdgeAgentModuleIdentity.Setup(id => id.IotHubHostname).Returns(testData.IoTHubHostname);

                this.ConfigSource.Setup(cs => cs.Configuration).Returns(this.Configuration.Object);
                var upstreamProtocolConfig = new Mock <IConfigurationSection>();

                this.Configuration.Setup(c => c.GetSection(Constants.UpstreamProtocolKey)).Returns(upstreamProtocolConfig.Object);
                upstreamProtocolConfig.Setup(c => c.Value).Returns(testData.UpstreamProtocol);
                var edgeletManagementUriConfig = new Mock <IConfigurationSection>();

                this.Configuration.Setup(c => c.GetSection(Constants.EdgeletManagementUriVariableName)).Returns(edgeletManagementUriConfig.Object);
                edgeletManagementUriConfig.Setup(c => c.Value).Returns(testData.EdgeletManagementUri);
                var edgeletWorkloadListenUriMntConfig = new Mock <IConfigurationSection>();

                this.Configuration.Setup(c => c.GetSection(Constants.EdgeletWorkloadListenMntUriVariableName)).Returns(edgeletWorkloadListenUriMntConfig.Object);
                edgeletWorkloadListenUriMntConfig.Setup(c => c.Value).Returns(testData.EdgeletWorkloadListenUriMnt);
                var networkIdConfig = new Mock <IConfigurationSection>();

                this.Configuration.Setup(c => c.GetSection(Constants.NetworkIdKey)).Returns(networkIdConfig.Object);
                networkIdConfig.Setup(c => c.Value).Returns(testData.NetworkId);
                var edgeletApiVersionConfig = new Mock <IConfigurationSection>();

                this.Configuration.Setup(c => c.GetSection(Constants.EdgeletApiVersionVariableName)).Returns(edgeletApiVersionConfig.Object);
                edgeletApiVersionConfig.Setup(c => c.Value).Returns(testData.EdgeletApiVersion);
            }