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"); }
static void Main(string[] args) { var configuration = new AppSettingsReader().GenerateConfiguration(); var filesystem = new Filesystem(); var deviceTranslator = new DeviceTranslator(); var mqttConfigGenerator = new MqttConfigGenerator( filesystem, new MqttActuatorConfigTransformer(configuration), new MqttSensorConfigTransformer(configuration, deviceTranslator), new TemplateSensorConfigTransformer(configuration, deviceTranslator)); var lovelaceConfigGenerator = new LovelaceConfigGenerator( filesystem, new LovelaceConfigTransformer(deviceTranslator)); Task.WaitAll( mqttConfigGenerator.GenerateConfigAsync(configuration.GetMqttDevicesFolder(), configuration.OutputFolder), lovelaceConfigGenerator.GenerateConfigAsync(configuration.GetMqttDevicesFolder(), configuration.GetLovelaceIncludesFolder()) ); }