From 2473e7736955d6e3cffa0e4826b6c8784ea91155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= <1005065+DeepDiver1975@users.noreply.github.com> Date: Tue, 1 Sep 2026 09:18:05 +0200 Subject: [PATCH 1/2] refactor: remove unused Stammdaten categories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Status, Equipment, Districts, Streets, Einsatzarten, and the settings' PressureControlIntervalMinutes were editable and persisted in the Stammdaten editor but never actually read by any ViewModel, view, or domain logic elsewhere in the app. ScbaViewModel derives its control interval from AgtMaxDurationMinutes / 3 instead, so the stored value was silently ignored. Remove the dead schema, persistence, editor sections, and settings field end-to-end. Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- README.md | 2 +- docs/master-data.example.json | 9 ---- .../Views/MasterDataEditorView.axaml | 6 --- .../ViewModels/MasterDataEditorViewModel.cs | 28 ++--------- .../ViewModels/SettingsSection.cs | 13 ++--- .../MasterData/MasterDataSet.cs | 48 ++----------------- .../MasterData/MasterDataStore.cs | 44 ----------------- .../MasterDataEditorRenderTests.cs | 8 +--- .../ForcesViewModelTests.cs | 2 +- .../MasterDataEditorViewModelTests.cs | 29 ++++------- .../ScbaViewModelTests.cs | 1 - .../MasterDataJsonTests.cs | 22 ++------- .../MasterDataStoreTests.cs | 31 ++---------- 14 files changed, 30 insertions(+), 215 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c9624c1..0cfe6b5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -60,7 +60,7 @@ A PR template with a short checklist will guide you: ## Master data and PII -Dropdown contents (roles, call signs, streets, personnel) are treated as +Dropdown contents (roles, call signs, brigades, personnel) are treated as personally identifying data and must **never** be committed to this repository. `seed-source/` and `*.masterdata.json` are gitignored for exactly this reason; the only tracked master data is the anonymised diff --git a/README.md b/README.md index 9638ee1..65fd807 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ git tag v0.3.0 && git push origin v0.3.0 ## Master data -Dropdown contents (roles, radio call signs, streets, personnel, ...) are treated +Dropdown contents (roles, radio call signs, brigades, personnel, ...) are treated as PII and are **never compiled into the application**. A fresh install starts with **empty** master data; you populate it in the in-app **Stammdaten** editor by importing a JSON file, and can write your own data back out again. diff --git a/docs/master-data.example.json b/docs/master-data.example.json index b3fe475..632d7bb 100644 --- a/docs/master-data.example.json +++ b/docs/master-data.example.json @@ -1,13 +1,9 @@ { "roles": ["EL", "EAL", "ZF", "GF"], - "status": ["aufgenommen", "übermittelt", "abgearbeitet"], "unitStatus": ["Alarmiert", "Auf Anfahrt", "Bereitstellungsraum", "Im Einsatz"], - "equipment": ["Mobilteil 1", "Digitalkamera"], - "districts": ["Musterstadt", "Musterdorf"], "radioCallSigns": ["Florian Musterstadt 1", "Florian Musterstadt 11/1"], "brigades": ["FF Musterstadt", "FF Musterdorf"], "truppTypes": ["Angriffstrupp", "Wassertrupp", "Schlauchtrupp", "CSA-Trupp", "LPA-Trupp"], - "einsatzarten": ["B", "THL", "R", "ABC", "Sonstiges"], "checklistTemplateAufbau": [ { "text": "Aufstellort ELW frei?", "mandatory": true }, { "text": "Kennleuchte ein, Blaulicht aus?", "mandatory": false } @@ -15,10 +11,6 @@ "checklistTemplateAbbau": [ { "text": "Fahrzeug abgerüstet?", "mandatory": true } ], - "streets": [ - { "name": "Bahnhofstraße", "district": "Musterstadt" }, - { "name": "Hauptstraße", "district": "Musterdorf" } - ], "personnel": [ { "lastName": "Mustermann", "firstName": "Max", "role": "ZF", "callSign": "Florian Musterstadt 1", "phone": "0171 0000000" }, { "lastName": "Musterfrau", "firstName": "Erika", "role": "GF", "callSign": null, "phone": null } @@ -29,7 +21,6 @@ "agtMaxDurationMinutes": 30, "csaMaxDurationMinutes": 20, "lpaMaxDurationMinutes": 60, - "pressureControlIntervalMinutes": 5, "returnPressureBar": 50 } } diff --git a/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml b/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml index b07efcb..1d40dc3 100644 --- a/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml +++ b/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml @@ -92,12 +92,6 @@ Minimum="1" Maximum="180" Increment="1" FormatString="0" /> - - - - - /// The Stammdaten editor. Loads every editable category from the provider into its own section, -/// tracks a single dirty flag across them, and writes the whole set back on Save. Streets are read -/// but not editable, so they are carried through untouched. Import (offered only while the data is -/// empty) fills the editor from a JSON file for review; Export writes the current set back out. +/// tracks a single dirty flag across them, and writes the whole set back on Save. Import (offered +/// only while the data is empty) fills the editor from a JSON file for review; Export writes the +/// current set back out. /// public sealed partial class MasterDataEditorViewModel : ObservableObject { @@ -24,18 +24,9 @@ public sealed partial class MasterDataEditorViewModel : ObservableObject // Typed handles kept so BuildSet reads each section without fragile positional casts. private EditableListSection _roles = null!; - // Typed handles kept so BuildSet reads each section without fragile positional casts. - private EditableListSection _status = null!; - // Typed handles kept so BuildSet reads each section without fragile positional casts. private EditableListSection _unitStatus = null!; - // Typed handles kept so BuildSet reads each section without fragile positional casts. - private EditableListSection _equipment = null!; - - // Typed handles kept so BuildSet reads each section without fragile positional casts. - private EditableListSection _districts = null!; - // Typed handles kept so BuildSet reads each section without fragile positional casts. private EditableListSection _brigades = null!; @@ -45,9 +36,6 @@ public sealed partial class MasterDataEditorViewModel : ObservableObject // Typed handles kept so BuildSet reads each section without fragile positional casts. private EditableListSection _truppTypes = null!; - // Typed handles kept so BuildSet reads each section without fragile positional casts. - private EditableListSection _einsatzarten = null!; - private ChecklistTemplateSection _checklistAufbau = null!; private ChecklistTemplateSection _checklistAbbau = null!; private LinksSection _links = null!; @@ -112,14 +100,10 @@ private void PopulateSections(MasterDataSet set) Sections.Clear(); Sections.Add(_settings = new SettingsSection("Einstellungen", set.Settings, MarkDirty)); Sections.Add(_roles = new EditableListSection("Rollen", set.Roles, MarkDirty)); - Sections.Add(_status = new EditableListSection("Status", set.Status, MarkDirty)); Sections.Add(_unitStatus = new EditableListSection("Einheiten-Status", set.UnitStatus, MarkDirty)); - Sections.Add(_equipment = new EditableListSection("Ausrüstung", set.Equipment, MarkDirty)); - Sections.Add(_districts = new EditableListSection("Bezirke", set.Districts, MarkDirty)); Sections.Add(_brigades = new EditableListSection("Wachen", set.Brigades, MarkDirty)); Sections.Add(_callSigns = new EditableListSection("Funkrufnamen", set.RadioCallSigns, MarkDirty)); Sections.Add(_truppTypes = new EditableListSection("Trupp-Typen", set.TruppTypes, MarkDirty)); - Sections.Add(_einsatzarten = new EditableListSection("Einsatzarten", set.Einsatzarten, MarkDirty)); Sections.Add(_links = new LinksSection("Links", set.Links, MarkDirty)); Sections.Add(_checklistAufbau = new ChecklistTemplateSection("Checkliste Aufbau", set.ChecklistTemplateAufbau, MarkDirty)); Sections.Add(_checklistAbbau = new ChecklistTemplateSection("Checkliste Abbau", set.ChecklistTemplateAbbau, MarkDirty)); @@ -152,22 +136,16 @@ private void RefreshVehicleConflicts() private MasterDataSet BuildSet() => _original with { Roles = _roles.ToValues(), - Status = _status.ToValues(), UnitStatus = _unitStatus.ToValues(), - Equipment = _equipment.ToValues(), - Districts = _districts.ToValues(), Brigades = _brigades.ToValues(), RadioCallSigns = _callSigns.ToValues(), TruppTypes = _truppTypes.ToValues(), - Einsatzarten = _einsatzarten.ToValues(), Links = _links.ToValues(), ChecklistTemplateAufbau = _checklistAufbau.ToValues(), ChecklistTemplateAbbau = _checklistAbbau.ToValues(), Personnel = _personnel.ToPeople(), Vehicles = _vehicles.ToValues(), Settings = _settings.ToSettings(), - - // Streets are not editable here; _original carries them through unchanged. }; [RelayCommand(CanExecute = nameof(CanSave))] diff --git a/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs b/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs index 58e0ea6..d3a3b74 100644 --- a/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs +++ b/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs @@ -5,9 +5,9 @@ namespace LageBuch.AppLogic.ViewModels; /// /// Editor for the operational defaults (): the ILS reminder interval, -/// the AGT/CSA Einsatzzeiten, the Druckkontrolle interval and the Rückzugsdruck. Unlike the list -/// sections these are scalar numbers, so the section exposes one bindable property each and reports -/// any change through the shared dirty callback. +/// the AGT/CSA Einsatzzeiten and the Rückzugsdruck. Unlike the list sections these are scalar +/// numbers, so the section exposes one bindable property each and reports any change through the +/// shared dirty callback. /// public sealed partial class SettingsSection : EditorSection { @@ -23,7 +23,6 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged _agtMaxDurationMinutes = settings.AgtMaxDurationMinutes; _csaMaxDurationMinutes = settings.CsaMaxDurationMinutes; _lpaMaxDurationMinutes = settings.LpaMaxDurationMinutes; - _pressureControlIntervalMinutes = settings.PressureControlIntervalMinutes; _returnPressureBar = settings.ReturnPressureBar; } @@ -42,9 +41,6 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged [ObservableProperty] private int _lpaMaxDurationMinutes; - [ObservableProperty] - private int _pressureControlIntervalMinutes; - [ObservableProperty] private int _returnPressureBar; @@ -58,8 +54,6 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged partial void OnLpaMaxDurationMinutesChanged(int value) => _onChanged(); - partial void OnPressureControlIntervalMinutesChanged(int value) => _onChanged(); - partial void OnReturnPressureBarChanged(int value) => _onChanged(); public IncidentSettings ToSettings() => new( @@ -68,6 +62,5 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged AgtMaxDurationMinutes, CsaMaxDurationMinutes, LpaMaxDurationMinutes, - PressureControlIntervalMinutes, ReturnPressureBar); } diff --git a/src/LageBuch.Persistence/MasterData/MasterDataSet.cs b/src/LageBuch.Persistence/MasterData/MasterDataSet.cs index 1b23daf..5b0ad3e 100644 --- a/src/LageBuch.Persistence/MasterData/MasterDataSet.cs +++ b/src/LageBuch.Persistence/MasterData/MasterDataSet.cs @@ -7,25 +7,15 @@ namespace LageBuch.Persistence.MasterData; public sealed record MasterDataSet( IReadOnlyList Roles, - IReadOnlyList Status, - IReadOnlyList Equipment, - IReadOnlyList Districts, IReadOnlyList RadioCallSigns, IReadOnlyList Brigades, - - // UnitStatus is the status of a single unit (Alarmiert, Auf Anfahrt, ...) and is deliberately - // separate from Status above, which is the incident-level vocabulary (aufgenommen, ...). IReadOnlyList UnitStatus, - IReadOnlyList Streets, IReadOnlyList Links, IReadOnlyList ChecklistTemplateAufbau, IReadOnlyList ChecklistTemplateAbbau, IReadOnlyList TruppTypes, IReadOnlyList Personnel, - // Einsatzart values (ABek Bayern) — the leading token of the complete Einsatznummer. - IReadOnlyList Einsatzarten, - // Vehicles per Wache with their seat count (#76). IReadOnlyList Vehicles, @@ -43,16 +33,11 @@ public sealed record MasterDataSet( Array.Empty(), Array.Empty(), Array.Empty(), - Array.Empty(), - Array.Empty(), - Array.Empty(), - Array.Empty(), Array.Empty(), Array.Empty(), Array.Empty(), Array.Empty(), Array.Empty(), - Array.Empty(), Array.Empty(), IncidentSettings.Defaults); @@ -63,16 +48,14 @@ public sealed record MasterDataSet( /// mark the set non-empty would suppress the Import bootstrap on an otherwise fresh install. /// public bool IsEmpty => - Roles.Count == 0 && Status.Count == 0 && Equipment.Count == 0 && Districts.Count == 0 + Roles.Count == 0 && RadioCallSigns.Count == 0 && Brigades.Count == 0 && UnitStatus.Count == 0 - && Streets.Count == 0 && Links.Count == 0 && ChecklistTemplateAufbau.Count == 0 && ChecklistTemplateAbbau.Count == 0 + && Links.Count == 0 && ChecklistTemplateAufbau.Count == 0 && ChecklistTemplateAbbau.Count == 0 && TruppTypes.Count == 0 - && Personnel.Count == 0 && Einsatzarten.Count == 0 + && Personnel.Count == 0 && Vehicles.Count == 0; } -public sealed record Street(string Name, string District); - /// A named link — Stammdaten entry so useful external resources can be opened from an Einsatz. [SuppressMessage("Design", "CA1054", Justification = "Link URLs are free-form display data in persisted master data; System.Uri would make non-parseable values (relay or relative links) fail to load.")] [SuppressMessage("Design", "CA1056", Justification = "Link URLs are free-form display data in persisted master data; System.Uri would make non-parseable values (relay or relative links) fail to load.")] @@ -107,9 +90,6 @@ public sealed record IncidentSettings( // Atemschutz Einsatzzeit for an LPA-Trupp (long-duration apparatus) — longer than an AGT. int LpaMaxDurationMinutes, - // Interval between Druckkontrollen (Atemschutzkontrolle). - int PressureControlIntervalMinutes, - // Rückzugsdruck: pressure at or below which a Trupp must turn back. int ReturnPressureBar) { @@ -123,7 +103,6 @@ public sealed record IncidentSettings( AgtMaxDurationMinutes: AtemschutzTrupp.DefaultMaxDurationMinutes, CsaMaxDurationMinutes: AtemschutzTrupp.DefaultChemicalMaxDurationMinutes, LpaMaxDurationMinutes: AtemschutzTrupp.DefaultLpaMaxDurationMinutes, - PressureControlIntervalMinutes: AtemschutzTrupp.DefaultPressureControlIntervalMinutes, ReturnPressureBar: AtemschutzTrupp.DefaultReturnPressureBar); } @@ -272,15 +251,6 @@ static IReadOnlyList Arr(JsonElement e, string prop) => ? a.EnumerateArray().Select(x => x.GetString()!).ToList() : Array.Empty(); - IReadOnlyList streets = - root.TryGetProperty("streets", out var st) && st.ValueKind == JsonValueKind.Array - ? st.EnumerateArray() - .Select(s => new Street( - s.GetProperty("name").GetString()!, - s.TryGetProperty("district", out var d) ? d.GetString() ?? string.Empty : string.Empty)) - .ToList() - : Array.Empty(); - IReadOnlyList links = root.TryGetProperty("links", out var lk) && lk.ValueKind == JsonValueKind.Array ? lk.EnumerateArray() @@ -302,19 +272,14 @@ static IReadOnlyList Arr(JsonElement e, string prop) => return new MasterDataSet( Arr(root, "roles"), - Arr(root, "status"), - Arr(root, "equipment"), - Arr(root, "districts"), Arr(root, "radioCallSigns"), Arr(root, "brigades"), Arr(root, "unitStatus"), - streets, links, checklistAufbau, checklistAbbau, Arr(root, "truppTypes"), ParsePersonnel(root), - Arr(root, "einsatzarten"), vehicles, ParseSettings(root)); } @@ -372,7 +337,6 @@ static int Int(JsonElement e, string prop, int fallback) => Int(s, "agtMaxDurationMinutes", d.AgtMaxDurationMinutes), Int(s, "csaMaxDurationMinutes", d.CsaMaxDurationMinutes), Int(s, "lpaMaxDurationMinutes", d.LpaMaxDurationMinutes), - Int(s, "pressureControlIntervalMinutes", d.PressureControlIntervalMinutes), Int(s, "returnPressureBar", d.ReturnPressureBar)); } @@ -406,17 +370,12 @@ public static string Serialize(MasterDataSet set) var model = new { roles = set.Roles, - status = set.Status, unitStatus = set.UnitStatus, - equipment = set.Equipment, - districts = set.Districts, radioCallSigns = set.RadioCallSigns, brigades = set.Brigades, truppTypes = set.TruppTypes, - einsatzarten = set.Einsatzarten, checklistTemplateAufbau = set.ChecklistTemplateAufbau.Select(i => new { text = i.Text, mandatory = i.IsMandatory }), checklistTemplateAbbau = set.ChecklistTemplateAbbau.Select(i => new { text = i.Text, mandatory = i.IsMandatory }), - streets = set.Streets.Select(s => new { name = s.Name, district = s.District }), links = set.Links.Select(l => new { name = l.Name, url = l.Url }), vehicles = set.Vehicles.Select(v => new { wache = v.Wache, callSign = v.CallSign, seats = v.Seats }), personnel = set.Personnel.Select(p => new @@ -434,7 +393,6 @@ public static string Serialize(MasterDataSet set) agtMaxDurationMinutes = set.Settings.AgtMaxDurationMinutes, csaMaxDurationMinutes = set.Settings.CsaMaxDurationMinutes, lpaMaxDurationMinutes = set.Settings.LpaMaxDurationMinutes, - pressureControlIntervalMinutes = set.Settings.PressureControlIntervalMinutes, returnPressureBar = set.Settings.ReturnPressureBar, }, }; diff --git a/src/LageBuch.Persistence/MasterData/MasterDataStore.cs b/src/LageBuch.Persistence/MasterData/MasterDataStore.cs index 684ad7b..56647ae 100644 --- a/src/LageBuch.Persistence/MasterData/MasterDataStore.cs +++ b/src/LageBuch.Persistence/MasterData/MasterDataStore.cs @@ -30,28 +30,10 @@ public static void Save(string path, MasterDataSet set) using var tx = cn.BeginTransaction(); ReplaceList(cn, tx, "md_roles", set.Roles); - ReplaceList(cn, tx, "md_status", set.Status); ReplaceList(cn, tx, "md_unit_status", set.UnitStatus); - ReplaceList(cn, tx, "md_equipment", set.Equipment); - ReplaceList(cn, tx, "md_districts", set.Districts); ReplaceList(cn, tx, "md_call_signs", set.RadioCallSigns); ReplaceList(cn, tx, "md_brigades", set.Brigades); ReplaceList(cn, tx, "md_trupp_types", set.TruppTypes); - ReplaceList(cn, tx, "md_einsatzarten", set.Einsatzarten); - - Run(cn, tx, "DELETE FROM md_streets;", _ => { }); - foreach (var s in set.Streets) - { - Run( - cn, - tx, - "INSERT INTO md_streets (name, district) VALUES ($n,$d);", - p => - { - p("$n", s.Name); - p("$d", s.District); - }); - } Run(cn, tx, "DELETE FROM md_links;", _ => { }); foreach (var l in set.Links) @@ -149,7 +131,6 @@ private static (string Key, int Value)[] SettingsRows(IncidentSettings s) => new ("agt_max_duration_minutes", s.AgtMaxDurationMinutes), ("csa_max_duration_minutes", s.CsaMaxDurationMinutes), ("lpa_max_duration_minutes", s.LpaMaxDurationMinutes), - ("pressure_control_interval_minutes", s.PressureControlIntervalMinutes), ("return_pressure_bar", s.ReturnPressureBar), }; @@ -163,13 +144,9 @@ private static void EnsureSchema(SqliteConnection cn) { const string schema = """ CREATE TABLE IF NOT EXISTS md_roles (value TEXT NOT NULL); - CREATE TABLE IF NOT EXISTS md_status (value TEXT NOT NULL); - CREATE TABLE IF NOT EXISTS md_equipment (value TEXT NOT NULL); - CREATE TABLE IF NOT EXISTS md_districts (value TEXT NOT NULL); CREATE TABLE IF NOT EXISTS md_call_signs (value TEXT NOT NULL); CREATE TABLE IF NOT EXISTS md_brigades (value TEXT NOT NULL); CREATE TABLE IF NOT EXISTS md_unit_status (value TEXT NOT NULL); - CREATE TABLE IF NOT EXISTS md_streets (name TEXT NOT NULL, district TEXT NOT NULL); CREATE TABLE IF NOT EXISTS md_links (name TEXT NOT NULL, url TEXT NOT NULL); CREATE TABLE IF NOT EXISTS md_vehicles (wache TEXT NOT NULL, call_sign TEXT NOT NULL, seats INTEGER NOT NULL DEFAULT 0); CREATE TABLE IF NOT EXISTS md_checklist_template ( @@ -179,7 +156,6 @@ CREATE TABLE IF NOT EXISTS md_checklist_template ( kind INTEGER NOT NULL DEFAULT 0 ); CREATE TABLE IF NOT EXISTS md_trupp_types (value TEXT NOT NULL); - CREATE TABLE IF NOT EXISTS md_einsatzarten (value TEXT NOT NULL); CREATE TABLE IF NOT EXISTS md_personnel ( last_name TEXT NOT NULL, first_name TEXT NOT NULL, @@ -202,19 +178,14 @@ private static MasterDataSet Read(SqliteConnection cn) var (checklistAufbau, checklistAbbau) = ReadChecklistTemplate(cn); return new( ReadColumn(cn, "SELECT value FROM md_roles;"), - ReadColumn(cn, "SELECT value FROM md_status;"), - ReadColumn(cn, "SELECT value FROM md_equipment;"), - ReadColumn(cn, "SELECT value FROM md_districts;"), ReadColumn(cn, "SELECT value FROM md_call_signs;"), ReadColumn(cn, "SELECT value FROM md_brigades;"), ReadColumn(cn, "SELECT value FROM md_unit_status;"), - ReadStreets(cn), ReadLinks(cn), checklistAufbau, checklistAbbau, ReadColumn(cn, "SELECT value FROM md_trupp_types;"), ReadPersonnel(cn), - ReadColumn(cn, "SELECT value FROM md_einsatzarten;"), ReadVehicles(cn), ReadSettings(cn)); } @@ -261,7 +232,6 @@ private static IncidentSettings ReadSettings(SqliteConnection cn) Get("agt_max_duration_minutes", d.AgtMaxDurationMinutes), Get("csa_max_duration_minutes", d.CsaMaxDurationMinutes), Get("lpa_max_duration_minutes", d.LpaMaxDurationMinutes), - Get("pressure_control_interval_minutes", d.PressureControlIntervalMinutes), Get("return_pressure_bar", d.ReturnPressureBar)); } @@ -291,20 +261,6 @@ private static List ReadColumn(SqliteConnection cn, string sql) return list; } - private static List ReadStreets(SqliteConnection cn) - { - using var cmd = cn.CreateCommand(); - cmd.CommandText = "SELECT name, district FROM md_streets;"; - using var r = cmd.ExecuteReader(); - var list = new List(); - while (r.Read()) - { - list.Add(new Street(r.GetString(0), r.GetString(1))); - } - - return list; - } - private static List ReadLinks(SqliteConnection cn) { using var cmd = cn.CreateCommand(); diff --git a/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs b/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs index 0e5fd22..469020c 100644 --- a/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs +++ b/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs @@ -17,14 +17,10 @@ private sealed class SampleProvider : IMasterDataProvider public MasterDataSet Get() => MasterDataSet.Empty with { Roles = new[] { "EL", "EAL", "ZF", "GF" }, - Status = new[] { "aufgenommen", "übermittelt", "abgearbeitet" }, UnitStatus = new[] { "Alarmiert", "Auf Anfahrt", "Im Einsatz" }, - Equipment = new[] { "Mobilteil 1", "Digitalkamera" }, - Districts = new[] { "Aich", "FFB", "Puch" }, Brigades = new[] { "FFB Wache 1", "Aich", "Puch" }, RadioCallSigns = new[] { "FFB 1/10/1", "Aich 42/1", "Land 1" }, TruppTypes = new[] { "Angriffstrupp", "Wassertrupp", "CSA-Trupp" }, - Einsatzarten = new[] { "B", "THL", "R" }, ChecklistTemplateAufbau = new[] { new ChecklistTemplateItem("Aufstellort ELW frei?", true), @@ -68,8 +64,8 @@ public void The_editor_renders_with_every_category() var list = view.GetControl("CategoryList"); - // 14 categories plus #76's Fahrzeuge. - Assert.Equal(15, list.ItemCount); + // 10 categories plus #76's Fahrzeuge. + Assert.Equal(11, list.ItemCount); Assert.True(view.GetControl