Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions tests/LageBuch.Acceptance.Tests/AboutRenderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ public void About_dialog_shows_brand_publisher_and_license()
var texts = window.GetVisualDescendants().OfType<TextBlock>().Select(t => t.Text).ToList();
Assert.Contains("Lagebuch", texts);
Assert.Contains(vm.RepositoryUrl, texts);
Assert.Contains(texts, t => t!.Contains("MIT"));
Assert.Contains(texts, t => t!.Contains("Thomas Müller"));
Assert.Contains(texts, t => t!.Contains("MIT", StringComparison.Ordinal));
Assert.Contains(texts, t => t!.Contains("Thomas Müller", StringComparison.Ordinal));

Capture(window, "about-dialog.png");
}
Expand Down
2 changes: 1 addition & 1 deletion tests/LageBuch.Acceptance.Tests/ForcesTabRenderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public void A_strength_correction_is_committed_as_one_edit_and_exposes_the_verla
var edit = Assert.Single(edited.Edits);
Assert.Equal((0, 6, 0), (edit.PreviousOfficerCount, edit.PreviousPersonnelCount, edit.PreviousScbaCount));
Assert.True(edited.HasHistory);
Assert.Contains("Stärke 0/6/6 → 1/7/8", Assert.Single(edited.EditLines));
Assert.Contains("Stärke 0/6/6 → 1/7/8", Assert.Single(edited.EditLines), StringComparison.Ordinal);

Capture(window, "forces-strength-verlauf.png");
}
Expand Down
2 changes: 1 addition & 1 deletion tests/LageBuch.Acceptance.Tests/LayoutAlignmentTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ public void Atemschutz_crew_is_rendered_one_member_per_line()
// Each name is its own text run, not one joined string that the cell then clips.
foreach (var name in new[] { "Hintersberger, Hans", "Kreutzkamp, Bastian", "Schormaier, Florian" })
Assert.Contains(name, rendered);
Assert.DoesNotContain(rendered, s => s!.Contains("Hintersberger, Hans / "));
Assert.DoesNotContain(rendered, s => s!.Contains("Hintersberger, Hans / ", StringComparison.Ordinal));

// Existing in the visual tree is not the same as being visible. DataGrid rows are styled
// to a fixed 40px, which laid the third name out at y=40 in a 41px row — present, and
Expand Down
8 changes: 4 additions & 4 deletions tests/LageBuch.Acceptance.Tests/SharePanelRenderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ private static void Capture(Window window, string name)
}

private static TextBlock ShareStatus(Window window) =>
window.GetVisualDescendants().OfType<TextBlock>().First(t => t.Text != null && t.Text.StartsWith("Erreichbar unter"));
window.GetVisualDescendants().OfType<TextBlock>().First(t => t.Text != null && t.Text.StartsWith("Erreichbar unter", StringComparison.Ordinal));

[AvaloniaFact]
public void Before_sharing_the_button_invites_sharing_and_no_status_is_shown()
Expand All @@ -55,7 +55,7 @@ public void Before_sharing_the_button_invites_sharing_and_no_status_is_shown()
Assert.Equal("IM NETZWERK FREIGEBEN", vm.ShareButtonText);
Assert.Null(vm.ShareStatus);
Assert.DoesNotContain(window.GetVisualDescendants().OfType<TextBlock>(),
t => t.Text != null && t.Text.StartsWith("Erreichbar unter"));
t => t.Text != null && t.Text.StartsWith("Erreichbar unter", StringComparison.Ordinal));
Capture(window, "share-before.png");
}

Expand All @@ -68,9 +68,9 @@ public async Task Toggling_on_flips_the_label_and_shows_the_reachable_at_hint()
Dispatcher.UIThread.RunJobs();

Assert.Equal("FREIGABE BEENDEN", vm.ShareButtonText);
Assert.Contains("localhost:5859", ShareStatus(window).Text!);
Assert.Contains("localhost:5859", ShareStatus(window).Text!, StringComparison.Ordinal);
Assert.Equal("1234", vm.SharePin);
Assert.Contains(window.GetVisualDescendants().OfType<TextBlock>(), t => t.Text != null && t.Text.Contains("1234"));
Assert.Contains(window.GetVisualDescendants().OfType<TextBlock>(), t => t.Text != null && t.Text.Contains("1234", StringComparison.Ordinal));
Capture(window, "share-after.png");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ public void Adding_file_via_ui_updates_the_list_and_logs_to_the_etb()
Dispatcher.UIThread.RunJobs(); // let the async command's continuation reach the UI thread

Assert.Single(session.Incident.Files);
Assert.Contains(session.Incident.Journal, e => e.Text.StartsWith("Datei hinzugefügt:"));
Assert.Contains(session.Incident.Journal, e => e.Text.StartsWith("Datei hinzugefügt:", StringComparison.Ordinal));
}
finally
{
Expand Down
2 changes: 1 addition & 1 deletion tests/LageBuch.App.Tests/AppPathsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public void GetAppDataDir_creates_lagebuch_subdir()
{
var dir = AppPaths.GetAppDataDir(_base);
Assert.True(Directory.Exists(dir));
Assert.EndsWith("Lagebuch", dir.TrimEnd(Path.DirectorySeparatorChar));
Assert.EndsWith("Lagebuch", dir.TrimEnd(Path.DirectorySeparatorChar), StringComparison.Ordinal);
}

[Fact]
Expand Down
8 changes: 4 additions & 4 deletions tests/LageBuch.AppLogic.Tests/AboutViewModelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ public void Names_the_MIT_license_and_the_copyright_holder()
// Must stay in sync with the LICENSE file in the repo root.
var vm = new AboutViewModel(new FakeDialogs(), "0.1.0");

Assert.Contains("MIT", vm.LicenseLine);
Assert.Contains("Thomas Müller", vm.CopyrightLine);
Assert.Contains("2026", vm.CopyrightLine);
Assert.Contains("MIT", vm.LicenseLine, StringComparison.Ordinal);
Assert.Contains("Thomas Müller", vm.CopyrightLine, StringComparison.Ordinal);
Assert.Contains("2026", vm.CopyrightLine, StringComparison.Ordinal);
}

[Fact]
Expand Down Expand Up @@ -75,7 +75,7 @@ public async Task A_failed_repository_open_is_reported_instead_of_crashing()
await vm.OpenRepositoryCommand.ExecuteAsync(null);

Assert.NotNull(vm.ErrorMessage);
Assert.Contains("github.com/CodeForFire/lagebuch", vm.ErrorMessage);
Assert.Contains("github.com/CodeForFire/lagebuch", vm.ErrorMessage, StringComparison.Ordinal);
}

private sealed class ThrowingUrlDialogs : IFileDialogService
Expand Down
10 changes: 5 additions & 5 deletions tests/LageBuch.AppLogic.Tests/ForcesViewModelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ public void Gf_and_mann_are_stored_as_total_with_officer_count()
var unit = Assert.Single(session.Incident.Forces);
Assert.Equal((1, 9, 8), (unit.OfficerCount, unit.PersonnelCount, unit.MannschaftCount));
Assert.Equal("1/8/9", unit.StrengthText);
Assert.Contains("Stärke 1/8/9", session.Incident.Journal[^1].Text);
Assert.Contains("Stärke 1/8/9", session.Incident.Journal[^1].Text, StringComparison.Ordinal);
}

// --- Issue #76: editable Stärke -----------------------------------------------------------
Expand Down Expand Up @@ -309,8 +309,8 @@ public void Editing_a_rows_strength_reaches_the_domain_with_an_etb_entry()
Assert.Equal((1, 9, 3), (unit.OfficerCount, unit.PersonnelCount, unit.ScbaCount));
Assert.Single(unit.Edits);
Assert.Equal(before + 1, session.Incident.Journal.Count);
Assert.Contains("Stärke 0/6/6 → 1/8/9", session.Incident.Journal[^1].Text);
Assert.Contains("davon AGT 0 → 3", session.Incident.Journal[^1].Text);
Assert.Contains("Stärke 0/6/6 → 1/8/9", session.Incident.Journal[^1].Text, StringComparison.Ordinal);
Assert.Contains("davon AGT 0 → 3", session.Incident.Journal[^1].Text, StringComparison.Ordinal);
}

[Fact]
Expand Down Expand Up @@ -340,7 +340,7 @@ public void Removing_a_row_takes_the_unit_out_and_logs_the_removal()
Assert.Equal("Aich", remaining.Brigade);
Assert.Equal(9, vm.TotalPersonnel);
Assert.Equal(3, changes); // two adds + the removal
Assert.Contains("Einheit entfernt: FFB Wache 1 (FFB 1/40/1)", session.Incident.Journal[^1].Text);
Assert.Contains("Einheit entfernt: FFB Wache 1 (FFB 1/40/1)", session.Incident.Journal[^1].Text, StringComparison.Ordinal);
}

[Fact]
Expand Down Expand Up @@ -516,7 +516,7 @@ public void Adding_and_restatusing_a_unit_writes_the_etb_entries_as_the_session_

vm.Forces[0].Status = "Im Einsatz";
Assert.Equal(before + 2, session.Incident.Journal.Count);
Assert.Contains("Status Alarmiert → Im Einsatz", session.Incident.Journal[^1].Text);
Assert.Contains("Status Alarmiert → Im Einsatz", session.Incident.Journal[^1].Text, StringComparison.Ordinal);
}

[Fact]
Expand Down
4 changes: 2 additions & 2 deletions tests/LageBuch.AppLogic.Tests/HomeViewModelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,8 @@ public void OpenRecent_of_an_unreadable_file_reports_instead_of_crashing()

Assert.Null(opened);
Assert.NotNull(vm.OpenError);
Assert.Contains("gone.fwincident", vm.OpenError!);
Assert.Contains("Datei kaputt.", vm.OpenError!);
Assert.Contains("gone.fwincident", vm.OpenError!, StringComparison.Ordinal);
Assert.Contains("Datei kaputt.", vm.OpenError!, StringComparison.Ordinal);
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public async Task A_failed_bind_surfaces_in_the_status_line_and_leaves_sharing_o
await vm.ToggleSharingCommand.ExecuteAsync(null);

Assert.False(vm.IsSharing);
Assert.Contains("Port 5859 belegt", vm.ShareStatus);
Assert.Contains("Port 5859 belegt", vm.ShareStatus, StringComparison.Ordinal);
}

private static IncidentWorkspaceViewModel NewWorkspace(out FakeStore store, out FixedClock clock, FakeDialogs? dialogs = null)
Expand Down Expand Up @@ -139,7 +139,7 @@ public void An_entry_logged_from_the_kraefte_tab_appears_in_the_etb_immediately(

Assert.Equal(before + 1, vm.Etb.Entries.Count);
// Newest first, matching how the tab renders.
Assert.Contains("Einheit aufgenommen: FFB Wache 1", vm.Etb.Entries[0].Text);
Assert.Contains("Einheit aufgenommen: FFB Wache 1", vm.Etb.Entries[0].Text, StringComparison.Ordinal);
}

[Fact]
Expand All @@ -154,7 +154,7 @@ public void An_entry_logged_from_the_atemschutz_tab_appears_in_the_etb_immediate
vm.Scba.AddTruppCommand.Execute(null);

Assert.Equal(before + 1, vm.Etb.Entries.Count);
Assert.Contains("Angriffstrupp", vm.Etb.Entries[0].Text);
Assert.Contains("Angriffstrupp", vm.Etb.Entries[0].Text, StringComparison.Ordinal);
}

[Fact]
Expand Down
2 changes: 1 addition & 1 deletion tests/LageBuch.AppLogic.Tests/LinksViewModelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public async Task OpenAsync_surfaces_a_friendly_error_when_the_platform_launcher
await vm.OpenCommand.ExecuteAsync(vm.Links[0]);

Assert.NotNull(vm.ErrorMessage);
Assert.Contains("Wetterdienst", vm.ErrorMessage);
Assert.Contains("Wetterdienst", vm.ErrorMessage, StringComparison.Ordinal);
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ public void A_duplicate_call_sign_blocks_saving_and_names_the_conflict()

Assert.False(vm.SaveCommand.CanExecute(null));
Assert.True(vm.HasVehicleConflicts);
Assert.Contains("FFB 1/40/1", vm.VehicleConflicts);
Assert.Contains("FFB 1/40/1", vm.VehicleConflicts, StringComparison.Ordinal);
}

[Fact]
Expand Down Expand Up @@ -510,7 +510,7 @@ public void Fixing_the_duplicate_re_enables_saving()
var vm = Vm(new InMemoryProvider(set));

Assert.False(vm.SaveCommand.CanExecute(null));
Assert.Contains("FFB 1/40/1", vm.VehicleConflicts);
Assert.Contains("FFB 1/40/1", vm.VehicleConflicts, StringComparison.Ordinal);

Vehicles(vm).Rows[1].CallSign = "Aich 42/1";

Expand Down
22 changes: 11 additions & 11 deletions tests/LageBuch.AppLogic.Tests/ScbaViewModelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public void AddTrupp_registers_a_waiting_trupp_and_does_not_start_the_clock()
Assert.True(row.IsWaiting);
Assert.False(row.IsActive);
Assert.Equal("Bereitgestellt", row.StatusDisplay);
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("bereitgestellt"));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("bereitgestellt", StringComparison.Ordinal));
Assert.Equal(1, changes);
}

Expand Down Expand Up @@ -95,7 +95,7 @@ public void Start_sends_trupp_under_air_and_logs_etb()
Assert.False(row.IsWaiting);
Assert.False(row.StartCommand.CanExecute(null));
Assert.True(row.RecordPressureCommand.CanExecute(null));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("im Einsatz"));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("im Einsatz", StringComparison.Ordinal));
}

[Fact]
Expand All @@ -111,8 +111,8 @@ public void Recording_pressure_logs_entry_and_low_reading_trips_alarm()
row.RecordPressureCommand.Execute(null);

Assert.True(row.IsAlarm);
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("Druckkontrolle") && e.Text.Contains("45 bar"));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("Rückzugsalarm"));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("Druckkontrolle", StringComparison.Ordinal) && e.Text.Contains("45 bar", StringComparison.Ordinal));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("Rückzugsalarm", StringComparison.Ordinal));
}

[Fact]
Expand All @@ -130,7 +130,7 @@ public void Header_reminder_tracks_the_soonest_due_active_trupp()

Assert.True(vm.HasControlReminder);
Assert.False(vm.IsAnyControlDue);
Assert.Contains("Nächste Druckabfrage", vm.NextControlDisplay);
Assert.Contains("Nächste Druckabfrage", vm.NextControlDisplay, StringComparison.Ordinal);
}

[Fact]
Expand All @@ -149,7 +149,7 @@ public void Tick_when_control_is_due_marks_due_in_header()

Assert.True(row.IsControlDue);
Assert.True(vm.IsAnyControlDue);
Assert.Contains("fällig", vm.NextControlDisplay);
Assert.Contains("fällig", vm.NextControlDisplay, StringComparison.Ordinal);
}

[Fact]
Expand All @@ -169,7 +169,7 @@ public void Tick_past_max_duration_logs_exactly_one_alarm_entry()
ticker.Fire();
ticker.Fire(); // must not log a second alarm for the same trupp

var alarms = session.Incident.Journal.Where(e => e.Text.Contains("Rückzugsalarm")).ToList();
var alarms = session.Incident.Journal.Where(e => e.Text.Contains("Rückzugsalarm", StringComparison.Ordinal)).ToList();
Assert.Single(alarms);
Assert.Equal(baseline + 1, changes);
}
Expand All @@ -194,15 +194,15 @@ public void Withdraw_then_MarkRemoved_logs_entries_and_stops_the_clock()
Assert.Equal("Rückzug", row.StatusDisplay);
Assert.False(row.WithdrawCommand.CanExecute(null));
Assert.True(row.MarkRemovedCommand.CanExecute(null));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("Rückzug"));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("Rückzug", StringComparison.Ordinal));

clock.Now = T0.AddMinutes(12);
row.MarkRemovedCommand.Execute(null);

Assert.True(row.IsReturned);
Assert.Equal("—", row.RemainingDisplay);
Assert.False(vm.HasControlReminder);
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("abgenommen"));
Assert.Contains(session.Incident.Journal, e => e.Text.Contains("abgenommen", StringComparison.Ordinal));
}

[Fact]
Expand Down Expand Up @@ -256,8 +256,8 @@ public void Tick_past_max_duration_sounds_the_audible_alarm_and_sets_banner()

Assert.True(vm.IsAnyAlarm);
Assert.Contains(AlarmSound.RetreatAlarm, alarm.Played);
Assert.Contains("RÜCKZUGSALARM", vm.AlarmDisplay);
Assert.Contains("Trupp 1 (Angriffstrupp)", vm.AlarmDisplay);
Assert.Contains("RÜCKZUGSALARM", vm.AlarmDisplay, StringComparison.Ordinal);
Assert.Contains("Trupp 1 (Angriffstrupp)", vm.AlarmDisplay, StringComparison.Ordinal);
Assert.True(vm.AcknowledgeAlarmCommand.CanExecute(null));
}

Expand Down
4 changes: 2 additions & 2 deletions tests/LageBuch.AppLogic.Tests/TasksViewModelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ public void Ticker_refreshes_countdown_and_plays_due_alarm_exactly_once()
clock.Now = T0.AddMinutes(4);
ticker.Fire();
Assert.False(row.IsOverdue);
Assert.StartsWith("noch", row.RemainingDisplay);
Assert.StartsWith("noch", row.RemainingDisplay, StringComparison.Ordinal);

clock.Now = T0.AddMinutes(5).AddSeconds(1);
ticker.Fire();
Expand Down Expand Up @@ -249,7 +249,7 @@ public void Completed_rows_carry_an_erledigt_stamp_open_rows_none()
var done = vm.Rows.Single(); // recreated by the write-back's Sync

Assert.True(done.IsDone);
Assert.StartsWith("ERLEDIGT ·", done.CompletedDisplay);
Assert.StartsWith("ERLEDIGT ·", done.CompletedDisplay, StringComparison.Ordinal);
}

[Fact]
Expand Down
4 changes: 2 additions & 2 deletions tests/LageBuch.Domain.Tests/CoMeasurementTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,8 @@ public void Incident_AddCoBuilding_LogsToETB()
incident.AddCoBuilding(clock, op, "Haus A", 8, 10);

var entry = incident.Journal.Last();
Assert.Contains("CO-Messprotokoll eröffnet", entry.Text);
Assert.Contains("Haus A", entry.Text);
Assert.Contains("CO-Messprotokoll eröffnet", entry.Text, StringComparison.Ordinal);
Assert.Contains("Haus A", entry.Text, StringComparison.Ordinal);
}

[Fact]
Expand Down
2 changes: 1 addition & 1 deletion tests/LageBuch.Domain.Tests/IncidentOperationsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ public void Edit_journal_entry_appends_a_system_trace_of_the_correction()

incident.EditJournalEntry(clock, op, entry.Id, "Lagemeldung korrigiert");

var trace = Assert.Single(incident.Journal, e => e.Text.Contains("bearbeitet"));
var trace = Assert.Single(incident.Journal, e => e.Text.Contains("bearbeitet", StringComparison.Ordinal));
Assert.Equal(EtbDirection.System, trace.Direction);
Assert.Equal(T0.AddMinutes(5), trace.Timestamp);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public void Loading_a_missing_file_reports_it_and_creates_nothing()
// The path rides on FileName, not in the message: the Home banner already prefixes the
// filename, so repeating it there reads as a stutter.
Assert.Equal(_path, ex.FileName);
Assert.DoesNotContain(Path.GetFileName(_path), ex.Message);
Assert.DoesNotContain(Path.GetFileName(_path), ex.Message, StringComparison.Ordinal);
Assert.False(File.Exists(_path));
}

Expand Down
4 changes: 2 additions & 2 deletions tests/LageBuch.Sync.Hosting.Tests/HomeViewModelJoinTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ await vm.JoinDeviceCommand.ExecuteAsync(

Assert.False(opened);
Assert.NotNull(vm.JoinError);
Assert.Contains("2.0.0", vm.JoinError); // names the host version it refused
Assert.Contains("2.0.0", vm.JoinError, StringComparison.Ordinal); // names the host version it refused
}

[Fact]
Expand Down Expand Up @@ -91,6 +91,6 @@ await vm.JoinDeviceCommand.ExecuteAsync(

Assert.False(opened);
Assert.NotNull(vm.JoinError);
Assert.Contains($"127.0.0.1:{port}", vm.JoinError); // names the device it couldn't reach
Assert.Contains($"127.0.0.1:{port}", vm.JoinError, StringComparison.Ordinal); // names the device it couldn't reach
}
}
2 changes: 1 addition & 1 deletion tests/LageBuch.Sync.Tests/CommandApplierTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public void Applying_a_sequence_of_commands_converges_the_incident()
// The strength correction arrived over the wire with officer count and edit trail intact.
var corrected = incident.Forces[0];
Assert.Equal((2, 12, 6, 1), (corrected.OfficerCount, corrected.PersonnelCount, corrected.ScbaCount,
incident.Journal.Count(e => e.Text.Contains('→'))));
incident.Journal.Count(e => e.Text.Contains('→', StringComparison.Ordinal))));
var trupp = Assert.Single(incident.ScbaTrupps);
Assert.Equal(300, trupp.EntryPressure);
}
Expand Down
6 changes: 3 additions & 3 deletions tests/LageBuch.Sync.Tests/CommandSerializationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public void Command_round_trips_through_the_polymorphic_base(SyncCommand command
public void Discriminator_is_the_dollar_type_property()
{
var json = SyncJson.Serialize<SyncCommand>(new ToggleChecklistItemCommand(Op, Guid.NewGuid()));
Assert.Contains("\"$type\":\"toggleChecklistItem\"", json);
Assert.Contains("\"$type\":\"toggleChecklistItem\"", json, StringComparison.Ordinal);
}

[Fact]
Expand Down Expand Up @@ -116,15 +116,15 @@ public void AddScbaTrupp_without_truppNumber_deserializes_as_null()
public void UpdateForceStrength_uses_the_updateForceStrength_discriminator()
{
var json = SyncJson.Serialize<SyncCommand>(new UpdateForceStrengthCommand(Op, Guid.NewGuid(), 1, 9, 4));
Assert.Contains("\"$type\":\"updateForceStrength\"", json);
Assert.Contains("\"$type\":\"updateForceStrength\"", json, StringComparison.Ordinal);
}

[Fact]
public void RemoveForceUnit_uses_the_removeForceUnit_discriminator_and_roundtrips()
{
var unitId = Guid.NewGuid();
var json = SyncJson.Serialize<SyncCommand>(new RemoveForceUnitCommand(Op, unitId));
Assert.Contains("\"$type\":\"removeForceUnit\"", json);
Assert.Contains("\"$type\":\"removeForceUnit\"", json, StringComparison.Ordinal);

var command = Assert.IsType<RemoveForceUnitCommand>(SyncJson.Deserialize<SyncCommand>(json));
Assert.Equal(unitId, command.UnitId);
Expand Down
Loading
Loading