Пример #1
0
        public async Task RegisterAdapterSettingOptionAddedTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var dbAdapter      = UnitTesting.CreateFakeAdapter();

            var adapterSetting = new AdapterSetting
            {
                Name             = "Adapter Setting 1",
                ValueType        = DataType.STRING,
                Value            = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };

            dbAdapter.Settings.Add(adapterSetting);
            var option1 = new AdapterSettingOption
            {
                Name = "Option 1",
            };
            var option2 = new AdapterSettingOption
            {
                Name = "Option 2",
            };

            adapterSetting.Options.Add(option1);


            using (var context = new ZvsContext(dbConnection))
            {
                context.Adapters.Add(dbAdapter);
                await context.SaveChangesAsync();
            }
            var adapter = new StubUnitTestAdapter
            {
                AdapterGuidGet = () => dbAdapter.AdapterGuid
            };

            adapterSetting.Options.Add(option2);

            //act
            var result = await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(adapterSetting, o => o.PropertyTest);

            AdapterSetting a;

            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.AdapterSettings
                    .Include(o => o.Options)
                    .FirstOrDefaultAsync(o => o.Id == adapterSetting.Id);
            }

            //assert
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Options.Count == 2, "Expected 2 adapter setting options");
            Assert.IsTrue(a.Options[1].Name == option2.Name, "Adapter option name mismatch");
        }
Пример #2
0
        public async Task RegisterNewDeviceSettingTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var deviceSetting  = new DeviceSetting
            {
                Name      = "Device Setting 1",
                ValueType = DataType.STRING,
                Value     = "Hello World"
            };

            //act
            var result = await adapterBuilder.RegisterDeviceSettingAsync(deviceSetting);

            DeviceSetting setting;

            using (var context = new ZvsContext(dbConnection))
            {
                setting = await context.DeviceSettings.FirstOrDefaultAsync();
            }

            //assert
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsNotNull(setting, "Setting not saved!");
            Assert.IsTrue(setting.Name == deviceSetting.Name, "Device setting name mismatch");
        }
Пример #3
0
        public void ConstructorTest()
        {
            //arrange
            //act
            var result = new AdapterSettingBuilder(new UnitTestDbConnection(), CancellationToken.None);

            //assert
            Assert.IsNotNull(result);
        }
        public void ConstructorTest()
        {
            //arrange 
            //act
            var result = new AdapterSettingBuilder(new ZvsEntityContextConnection(), CancellationToken.None);

            //assert 
            Assert.IsNotNull(result);
        }
Пример #5
0
        public async Task RegisterRemovedDeviceTypeSettingOptionTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());

            var adapterBuilder    = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var deviceType        = UnitTesting.CreateFakeDeviceType();
            var deviceTypeSetting = new DeviceTypeSetting
            {
                Name       = "Device Type Setting 1",
                ValueType  = DataType.STRING,
                Value      = "Hello World",
                DeviceType = deviceType
            };
            var option1 = new DeviceTypeSettingOption
            {
                Name = "Option 1",
            };
            var option2 = new DeviceTypeSettingOption
            {
                Name = "Option 2",
            };

            deviceTypeSetting.Options.Add(option1);
            deviceTypeSetting.Options.Add(option2);
            using (var context = new ZvsContext(dbConnection))
            {
                context.DeviceTypeSettings.Add(deviceTypeSetting);
                await context.SaveChangesAsync();
            }

            deviceTypeSetting.Options.Remove(option2);

            //act
            var result = await adapterBuilder.RegisterDeviceTypeSettingAsync(deviceTypeSetting);

            DeviceTypeSetting setting;

            using (var context = new ZvsContext(dbConnection))
            {
                setting = await context.DeviceTypeSettings
                          .Include(o => o.Options)
                          .FirstOrDefaultAsync();
            }

            //assert
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsNotNull(setting, "Setting not found");
            Assert.IsTrue(setting.Options.Count == 1, "Expected 2 options");
            Assert.IsTrue(setting.Options[0].Name == option1.Name, "Name mismatch");
        }
Пример #6
0
        public async Task RegisterAdapterSettingOnNonPropertyAdapterTest()
        {
            //Arrange
            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder(new UnitTestDbConnection(), CancellationToken.None);
            var adapter        = new StubUnitTestAdapter();

            //act
            await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(new AdapterSetting(), o => o.FieldTest);

            //assert - throws
        }
        public async Task RegisterAdapterSettingOnNonPropertyAdapterTest()
        {
            //Arrange 
            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder(new StubIEntityContextConnection(), CancellationToken.None);
            var adapter = new StubUnitTestAdapter();

            //act
            await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(new AdapterSetting(), o => o.FieldTest);

            //assert - throws
        }
        public override async Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
        {
            var testSetting = new AdapterSetting
            {
                Name = "Test setting",
                Value = (360).ToString(CultureInfo.InvariantCulture),
                ValueType = DataType.STRING,
                Description = "Unit testing only"
            };

            await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(testSetting, o => o.TestSetting);
        }
Пример #9
0
        public override async Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
        {
            var testSetting = new AdapterSetting
            {
                Name        = "Test setting",
                Value       = (360).ToString(CultureInfo.InvariantCulture),
                ValueType   = DataType.STRING,
                Description = "Unit testing only"
            };

            await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(testSetting, o => o.TestSetting);
        }
Пример #10
0
        public async Task Initialize(IFeedback<LogEntry> log, IEntityContextConnection entityContextConnection)
        {
            EntityContextConnection = entityContextConnection;
            Log = log;

            DeviceValueBuilder = new DeviceValueBuilder(entityContextConnection);
            DeviceCommandBuilder = new DeviceCommandBuilder(entityContextConnection);

            var dtb = new DeviceTypeBuilder(entityContextConnection);
            await OnDeviceTypesCreating(dtb);

            var sb = new AdapterSettingBuilder(entityContextConnection, CancellationToken);
            await OnSettingsCreating(sb);
        }
        public async Task RegisterAdapterSettingNullAdapterTest()
        {
            //Arrange 
            var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "asb-RegisterAdapterSettingNullAdapterTest" };
            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder( dbConnection, CancellationToken.None);
            var adapter = new StubUnitTestAdapter();

            //act
            var result = await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(new AdapterSetting(), o => o.PropertyTest);

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsTrue(result.HasError);
        }
Пример #12
0
        public async Task RegisterAdapterSettingValueDonestTriggerChangedTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var dbAdapter      = UnitTesting.CreateFakeAdapter();

            var adapterSetting = new AdapterSetting
            {
                Name             = "Adapter Setting 1",
                ValueType        = DataType.STRING,
                Value            = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };

            dbAdapter.Settings.Add(adapterSetting);
            using (var context = new ZvsContext(dbConnection))
            {
                context.Adapters.Add(dbAdapter);
                await context.SaveChangesAsync();
            }
            var adapter = new StubUnitTestAdapter
            {
                AdapterGuidGet = () => dbAdapter.AdapterGuid
            };

            adapterSetting.Value = "New value!";

            //act
            var result = await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(adapterSetting, o => o.PropertyTest);

            Adapter a;

            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.Adapters
                    .Include(o => o.Settings)
                    .FirstOrDefaultAsync(o => o.AdapterGuid == dbAdapter.AdapterGuid);
            }

            //assert
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Settings.Count == 1, "Expected 1 adapter setting");
            Assert.IsTrue(a.Settings[0].Value == "Hello World", "Adapter value changed when it shouldn't!");
        }
Пример #13
0
        public async Task RegisterAdapterSettingNullAdapterTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var adapter        = new StubUnitTestAdapter();

            //act
            var result = await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(new AdapterSetting(), o => o.PropertyTest);

            //assert
            Console.WriteLine(result.Message);
            Assert.IsTrue(result.HasError);
        }
        public async Task RegisterAdapterSettingAdapterTest()
        {
            //Arrange 
            var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "asb-RegisterAdapterSettingAdapterTest" };
            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var dbAdapter = UnitTesting.CreateFakeAdapter();
            using (var context = new ZvsContext(dbConnection))
            {
                context.Adapters.Add(dbAdapter);
                await context.SaveChangesAsync();
            }
            var adapter = new StubUnitTestAdapter
            {
                AdapterGuidGet = () => dbAdapter.AdapterGuid
            };

            var adapterSetting = new AdapterSetting
            {
                Name = "Adapter Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World"
            };
               
            //act
            var result = await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(adapterSetting, o => o.PropertyTest);

            Adapter a;
            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.Adapters
                    .Include(o=> o.Settings)
                    .FirstOrDefaultAsync(o => o.AdapterGuid == dbAdapter.AdapterGuid);
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Settings.Count == 1, "Expected 1 adapter setting");
            Assert.IsTrue(a.Settings[0].Name == adapterSetting.Name, "Adapter setting name mismatch");
        }
Пример #15
0
        public override async Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
        {
            var hostSetting = new AdapterSetting
            {
                Name        = "Host",
                Value       = "127.0.0.1",
                ValueType   = DataType.STRING,
                Description = "The host machine which your MQTT server is installed."
            };
            var portSetting = new AdapterSetting
            {
                Name        = "Port",
                Value       = "1883",
                ValueType   = DataType.INTEGER,
                Description =
                    "The port on host machine which your MQTT server is installed. (1883 - default, 8883 - SSL)"
            };

            await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(hostSetting, o => o.HostSetting);

            await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(portSetting, o => o.PortSetting);
        }
Пример #16
0
        public override async Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
        {
            var wifi1IpSetting = new AdapterSetting
            {
                Name        = "WiFi Controller 1 IP Address",
                Value       = "",
                ValueType   = DataType.STRING,
                Description = "The IP Address of the first WiFi Controller."
            };

            var wifi1SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi1IpSetting, o => o.WiFi1Setting);

            if (wifi1SettingResult.HasError)
            {
                await
                Log.ReportErrorFormatAsync(CancellationToken,
                                           "An error occured when registering the wifi controller 1 setting. {0}",
                                           wifi1SettingResult.Message);
            }



            var wifi2IpSetting = new AdapterSetting
            {
                Name        = "WiFi Controller 2 IP Address",
                Value       = "",
                ValueType   = DataType.STRING,
                Description = "The IP Address of the second WiFi Controller."
            };

            var wifi2SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi2IpSetting, o => o.WiFi2Setting);

            if (wifi2SettingResult.HasError)
            {
                await
                Log.ReportErrorFormatAsync(CancellationToken,
                                           "An error occured when registering the wifi controller 2 setting. {0}",
                                           wifi2SettingResult.Message);
            }

            var wifi3IpSetting = new AdapterSetting
            {
                Name        = "WiFi Controller 3 IP Address",
                Value       = "",
                ValueType   = DataType.STRING,
                Description = "The IP Address of the third WiFi Controller."
            };

            var wifi3SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi3IpSetting, o => o.WiFi3Setting);

            if (wifi3SettingResult.HasError)
            {
                await
                Log.ReportErrorFormatAsync(CancellationToken,
                                           "An error occured when registering the wifi controller 1 setting. {0}",
                                           wifi3SettingResult.Message);
            }

            var wifi4IpSetting = new AdapterSetting
            {
                Name        = "WiFi Controller 4 IP Address",
                Value       = "",
                ValueType   = DataType.STRING,
                Description = "The IP Address of the fourth WiFi Controller."
            };

            var wifi4SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi4IpSetting, o => o.WiFi4Setting);

            if (wifi4SettingResult.HasError)
            {
                await
                Log.ReportErrorFormatAsync(CancellationToken,
                                           "An error occured when registering the wifi controller 4 setting. {0}",
                                           wifi4SettingResult.Message);
            }



            await base.OnSettingsCreating(settingBuilder);
        }
Пример #17
0
 public virtual Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
 {
     return Task.FromResult(0);
 }
Пример #18
0
        public override async Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
        {
            var hostSetting = new AdapterSetting
                {
                    Name = "Host",
                    Value = "127.0.0.1",
                    ValueType = DataType.STRING,
                    Description = "The host machine which your MQTT server is installed."
                };
            var portSetting = new AdapterSetting
                {
                    Name = "Port",
                    Value = "1883",
                    ValueType = DataType.INTEGER,
                    Description =
                        "The port on host machine which your MQTT server is installed. (1883 - default, 8883 - SSL)"
                };

            await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(hostSetting, o => o.HostSetting);
            await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(portSetting, o => o.PortSetting);

        }
Пример #19
0
        public override async Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
        {
            var wifi1IpSetting = new AdapterSetting
            {
                Name = "WiFi Controller 1 IP Address",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The IP Address of the first WiFi Controller."
            };

            var wifi1SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi1IpSetting, o => o.WiFi1Setting);

            if (wifi1SettingResult.HasError)
                await
                    Log.ReportErrorFormatAsync(CancellationToken,
                        "An error occured when registering the wifi controller 1 setting. {0}",
                        wifi1SettingResult.Message);



            var wifi2IpSetting = new AdapterSetting
            {
                Name = "WiFi Controller 2 IP Address",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The IP Address of the second WiFi Controller."
            };

            var wifi2SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi2IpSetting, o => o.WiFi2Setting);

            if (wifi2SettingResult.HasError)
                await
                    Log.ReportErrorFormatAsync(CancellationToken,
                        "An error occured when registering the wifi controller 2 setting. {0}",
                        wifi2SettingResult.Message);

            var wifi3IpSetting = new AdapterSetting
            {
                Name = "WiFi Controller 3 IP Address",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The IP Address of the third WiFi Controller."
            };

            var wifi3SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi3IpSetting, o => o.WiFi3Setting);

            if (wifi3SettingResult.HasError)
                await
                    Log.ReportErrorFormatAsync(CancellationToken,
                        "An error occured when registering the wifi controller 1 setting. {0}",
                        wifi3SettingResult.Message);

            var wifi4IpSetting = new AdapterSetting
            {
                Name = "WiFi Controller 4 IP Address",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The IP Address of the fourth WiFi Controller."
            };

            var wifi4SettingResult =
                await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(wifi4IpSetting, o => o.WiFi4Setting);

            if (wifi4SettingResult.HasError)
                await
                    Log.ReportErrorFormatAsync(CancellationToken,
                        "An error occured when registering the wifi controller 4 setting. {0}",
                        wifi4SettingResult.Message);






            await base.OnSettingsCreating(settingBuilder);
        }
        public async Task RegisterRemovedDeviceTypeSettingOptionTest()
        {
            //Arrange 
            var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "asb-RegisterRemovedDeviceTypeSettingOptionTest" };
            Database.SetInitializer(new CreateFreshDbInitializer());

            var adapterBuilder = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var deviceType = UnitTesting.CreateFakeDeviceType();
            var deviceTypeSetting = new DeviceTypeSetting
            {
                Name = "Device Type Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World",
                DeviceType = deviceType
            };
            var option1 = new DeviceTypeSettingOption
            {
                Name = "Option 1",
            };
            var option2 = new DeviceTypeSettingOption
            {
                Name = "Option 2",
            };
            deviceTypeSetting.Options.Add(option1);
            deviceTypeSetting.Options.Add(option2);
            using (var context = new ZvsContext(dbConnection))
            {
                context.DeviceTypeSettings.Add(deviceTypeSetting);
                await context.SaveChangesAsync();
            }

            deviceTypeSetting.Options.Remove(option2);

            //act
            var result = await adapterBuilder.RegisterDeviceTypeSettingAsync(deviceTypeSetting);

            DeviceTypeSetting setting;
            using (var context = new ZvsContext(dbConnection))
            {
                setting = await context.DeviceTypeSettings
                    .Include(o => o.Options)
                    .FirstOrDefaultAsync();
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsNotNull(setting, "Setting not found");
            Assert.IsTrue(setting.Options.Count == 1, "Expected 2 options");
            Assert.IsTrue(setting.Options[0].Name == option1.Name, "Name mismatch");
        }
        public async Task RegisterNoUpdateDeviceTypeSettingTest()
        {
            //Arrange 
            var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "asb-RegisterNoUpdateDeviceTypeSettingTest" };
            Database.SetInitializer(new CreateFreshDbInitializer());

            var adapterBuilder = new AdapterSettingBuilder(dbConnection, CancellationToken.None);
            var deviceType = UnitTesting.CreateFakeDeviceType();
            var deviceTypeSetting = new DeviceTypeSetting
            {
                Name = "Device Type Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World",
                DeviceType =  deviceType
            };

            using (var context = new ZvsContext(dbConnection))
            {
                context.DeviceTypeSettings.Add(deviceTypeSetting);
                await context.SaveChangesAsync();
            }

            //act
            var result = await adapterBuilder.RegisterDeviceTypeSettingAsync(deviceTypeSetting);

            DeviceTypeSetting setting;
            using (var context = new ZvsContext(dbConnection))
            {
                setting = await context.DeviceTypeSettings.FirstOrDefaultAsync();
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsNotNull(setting, "Setting not found");
            Assert.IsTrue(setting.Value == deviceTypeSetting.Value, "Device type setting name mismatch");
        }
        public async Task RegisterAdapterSettingValueDonestTriggerChangedTest()
        {
            //Arrange 
            var dbConnection = new UnitTestDbConnection();
            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder( dbConnection, CancellationToken.None);
            var dbAdapter = UnitTesting.CreateFakeAdapter();

            var adapterSetting = new AdapterSetting
            {
                Name = "Adapter Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };
            dbAdapter.Settings.Add(adapterSetting);
            using (var context = new ZvsContext(dbConnection))
            {
                context.Adapters.Add(dbAdapter);
                await context.SaveChangesAsync();
            }
            var adapter = new StubUnitTestAdapter
            {
                AdapterGuidGet = () => dbAdapter.AdapterGuid
            };

            adapterSetting.Value = "New value!";

            //act
            var result = await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(adapterSetting, o => o.PropertyTest);

            Adapter a;
            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.Adapters
                    .Include(o => o.Settings)
                    .FirstOrDefaultAsync(o => o.AdapterGuid == dbAdapter.AdapterGuid);
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Settings.Count == 1, "Expected 1 adapter setting");
            Assert.IsTrue(a.Settings[0].Value == "Hello World", "Adapter value changed when it shouldn't!");
        }
        public async Task RegisterAdapterSettingOptionRemovedTest()
        {
            //Arrange 
            var dbConnection = new UnitTestDbConnection();
            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder( dbConnection, CancellationToken.None);
            var dbAdapter = UnitTesting.CreateFakeAdapter();

            var adapterSetting = new AdapterSetting
            {
                Name = "Adapter Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };
            dbAdapter.Settings.Add(adapterSetting);
            var option1 = new AdapterSettingOption
            {
                Name = "Option 1",
            };
            var option2 = new AdapterSettingOption
            {
                Name = "Option 2",
            };
            adapterSetting.Options.Add(option1);
            adapterSetting.Options.Add(option2);
            using (var context = new ZvsContext(dbConnection))
            {
                context.Adapters.Add(dbAdapter);
                await context.SaveChangesAsync();
            }
            var adapter = new StubUnitTestAdapter
            {
                AdapterGuidGet = () => dbAdapter.AdapterGuid
            };
            adapterSetting.Options.Remove(option2);

            //act
            var result = await adapterBuilder.Adapter(adapter).RegisterAdapterSettingAsync(adapterSetting, o => o.PropertyTest);

            AdapterSetting a;
            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.AdapterSettings
                    .Include(o => o.Options)
                    .FirstOrDefaultAsync(o => o.Id == adapterSetting.Id);
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Options.Count == 1, "Expected 2 adapter setting options");
            Assert.IsTrue(a.Options[0].Name == option1.Name, "Adapter option name mismatch");
        }
        public async Task RegisterNewDeviceSettingTest()
        {
            //Arrange 
            var dbConnection = new UnitTestDbConnection();
            Database.SetInitializer(new CreateFreshDbInitializer());
            var adapterBuilder = new AdapterSettingBuilder( dbConnection, CancellationToken.None);
            var deviceSetting = new DeviceSetting
            {
                Name = "Device Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World"
            };

            //act
            var result = await adapterBuilder.RegisterDeviceSettingAsync(deviceSetting);

            DeviceSetting setting;
            using (var context = new ZvsContext(dbConnection))
            {
                setting = await context.DeviceSettings.FirstOrDefaultAsync();
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsNotNull(setting, "Setting not saved!");
            Assert.IsTrue(setting.Name == deviceSetting.Name, "Device setting name mismatch");
        }
Пример #25
0
        public override async Task OnSettingsCreating(AdapterSettingBuilder settingBuilder)
        {
            var comSetting = new AdapterSetting
             {
                 Name = "Com Port",
                 Value = (3).ToString(CultureInfo.InvariantCulture),
                 ValueType = DataType.COMPORT,
                 Description = "The COM port that your z-wave controller is assigned to."
             };

            var pollIntSetting = new AdapterSetting
           {
               Name = "Polling interval",
               Value = (360).ToString(CultureInfo.InvariantCulture),
               ValueType = DataType.INTEGER,
               Description = "The frequency in which devices are polled for level status on your network.  Set high to avoid excessive network traffic. "
           };

            var comPortSettingResult = await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(comSetting, o => o.ComportSetting);
            if (comPortSettingResult.HasError)
                await
                    Log.ReportErrorFormatAsync(CancellationToken,
                        "An error occured when registering the comport adapter setting. {0}", comPortSettingResult.Message);

            var pollIntSettingResult = await settingBuilder.Adapter(this).RegisterAdapterSettingAsync(pollIntSetting, o => o.PollingIntervalSetting);
            if (pollIntSettingResult.HasError)
                await
                    Log.ReportErrorFormatAsync(CancellationToken,
                        "An error occured when registering the polling adapter setting. {0}", pollIntSettingResult.Message);

            var dimmerOnResult = await settingBuilder.RegisterDeviceTypeSettingAsync(new DeviceTypeSetting
            {
                UniqueIdentifier = OpenzWaveDeviceTypeSettings.DefaultDimmerOnLevel.ToString(),
                DeviceTypeId = DimmerTypeId,
                Name = "Default Level",
                Description = "Level that an device is set to when using the 'ON' command.",
                Value = "99",//default value
                ValueType = DataType.BYTE
            });
            if (dimmerOnResult.HasError)
                await Log.ReportErrorFormatAsync(CancellationToken, "An error occured when registering the dimmer level setting. {0}", dimmerOnResult.Message);

            var repollLevelSetting = await settingBuilder.RegisterDeviceTypeSettingAsync(new DeviceTypeSetting
            {
                UniqueIdentifier = OpenzWaveDeviceTypeSettings.EnableRepollOnLevelChange.ToString(),
                DeviceTypeId = DimmerTypeId,
                Name = "Enable re-poll on level change",
                Description = "Re-poll dimmers 3 seconds after a level change is received?",
                Value = true.ToString(), //default value
                ValueType = DataType.BOOL
            });
            if (repollLevelSetting.HasError)
                await Log.ReportErrorFormatAsync(CancellationToken, "An error occured when registering the re-poll setting. {0}", repollLevelSetting.Message);

            var repollSetting = await settingBuilder.RegisterDeviceTypeSettingAsync(new DeviceTypeSetting
            {
                UniqueIdentifier = OpenzWaveDeviceTypeSettings.RepollingEnabled.ToString(),
                DeviceTypeId = DimmerTypeId,
                Name = "Enable polling for this device",
                Description = "Toggles automatic polling for a device.",
                Value = false.ToString(), //default value
                ValueType = DataType.BOOL
            });
            if (repollSetting.HasError)
                await Log.ReportErrorFormatAsync(CancellationToken, "An error occured when registering the re-poll setting. {0}", repollSetting.Message);

        }