public void Battery_entities_existing_entries_are_retained()
        {
            // Arrange
            var filesystem  = new DummyFilesystem();
            var transformer = new LovelaceConfigTransformer(new DeviceTranslator());
            var generator   = new LovelaceConfigGenerator(filesystem, transformer);

            filesystem.WriteFileAsync(@"Z:\output\battery-entities.yaml", @"
- entity: sensor.my_existing_device_battery
  name: My existing device
");

            filesystem.WriteFileAsync(@"Z:\source\devices.yaml", @"
# My test device
- deviceId: Test device
  platform: hubitat
  sensors:
  - type: battery
".Trim());

            var expectedConfig = @"
- entity: sensor.my_existing_device_battery
  name: My existing device
- entity: sensor.test_device_battery
  name: Test device
".Trim();

            // Action
            Task.WaitAll(generator.GenerateConfigAsync(@"Z:\source", @"Z:\output"));
            var generatedConfig = filesystem.ReadFileAsync(@"Z:\output\battery-entities.yaml").Result;

            // Assert
            Assert.AreEqual(expectedConfig, generatedConfig.Trim(), "Config declared as expected");
        }
        public void Button_entities_file_is_generated()
        {
            // Arrange
            var filesystem  = new DummyFilesystem();
            var transformer = new LovelaceConfigTransformer(new DeviceTranslator());
            var generator   = new LovelaceConfigGenerator(filesystem, transformer);

            filesystem.WriteFileAsync(@"Z:\source\devices.yaml", @"
# My test button
- deviceId: Test button
  platform: hubitat
  sensors:
  - type: button
  - type: hold-button
".Trim());

            var expectedConfig = @"
- type: custom:fold-entity-brick
  entity: binary_sensor.test_button_active
  entities:
  - entity: binary_sensor.test_button
    name: Push
  - entity: binary_sensor.test_button_hold
    name: Hold
".Trim();

            // Action
            Task.WaitAll(generator.GenerateConfigAsync(@"Z:\source", @"Z:\output"));
            var generatedConfig = filesystem.ReadFileAsync(@"Z:\output\button-entities.yaml").Result;

            // Assert
            Assert.AreEqual(expectedConfig, generatedConfig.Trim(), "Config declared as expected");
        }
        public void Offline_entities_file_is_generated()
        {
            // Arrange
            var filesystem  = new DummyFilesystem();
            var transformer = new LovelaceConfigTransformer(new DeviceTranslator());
            var generator   = new LovelaceConfigGenerator(filesystem, transformer);

            filesystem.WriteFileAsync(@"Z:\source\devices.yaml", @"
# My test device
- deviceId: Test device
  platform: hubitat
  sensors:
  - type: offline
".Trim());

            var expectedConfig = @"
- entity: binary_sensor.test_device_offline
  name: Test device
".Trim();

            // Action
            Task.WaitAll(generator.GenerateConfigAsync(@"Z:\source", @"Z:\output"));
            var generatedConfig = filesystem.ReadFileAsync(@"Z:\output\offline-entities.yaml").Result;

            // Assert
            Assert.AreEqual(expectedConfig, generatedConfig.Trim(), "Config declared as expected");
        }
示例#4
0
        public void Sensor_entity_list_config_is_generated()
        {
            // Arrange
            var transformer = new LovelaceConfigTransformer(new DeviceTranslator());
            var definitions = new[] {
                new DeviceDefinition
                {
                    DeviceId = "Test device 1",
                    Platform = "hubitat",
                    Sensors  = new[] {
                        new SensorDefinition {
                            Type = "battery"
                        }
                    },
                },
                new DeviceDefinition
                {
                    DeviceId = "Test device 2",
                    Platform = "hubitat",
                    Sensors  = new[] {
                        new SensorDefinition {
                            Type = "battery"
                        },
                        new SensorDefinition {
                            Type = "motion"
                        },
                    },
                },
                new DeviceDefinition
                {
                    DeviceId = "Test device 3",
                    Platform = "hubitat",
                    Sensors  = new[] {
                        new SensorDefinition {
                            Type = "motion"
                        }
                    },
                },
            };

            // Action
            var result = transformer.GenerateSensorEntityList("battery", definitions);

            // Assert
            Assert.AreEqual(2, result.Count(), "Expected number of entities");
            Assert.AreEqual("sensor.test_device_1_battery", result.ElementAt(0).Entity, "Expected entity listed first");
            Assert.AreEqual("Test device 1", result.ElementAt(0).Name, "Expected entity name");
            Assert.AreEqual("sensor.test_device_2_battery", result.ElementAt(1).Entity, "Expected entity listed second");
        }