Forge
csharpa2ee7322
1using System.Collections.ObjectModel;
2using CascadeIDE.Cockpit.Channels.Eicas;
3using CascadeIDE.Cockpit.Composition.Eicas;
4using Xunit;
5
6namespace CascadeIDE.Tests;
7
8public sealed class EicasMessageSorterTests
9{
10 [Fact]
11 public void Rebuild_orders_warning_before_caution_before_advisory()
12 {
13 var target = new ObservableCollection<EicasMessage>();
14 var a = new EicasMessage(EicasSeverity.Advisory, "a");
15 var w = new EicasMessage(EicasSeverity.Warning, "w");
16 var c = new EicasMessage(EicasSeverity.Caution, "c");
17
18 EicasMessageSorter.Rebuild(target, [a, w, c]);
19
20 Assert.Equal(3, target.Count);
21 Assert.Equal(EicasSeverity.Warning, target[0].Severity);
22 Assert.Equal(EicasSeverity.Caution, target[1].Severity);
23 Assert.Equal(EicasSeverity.Advisory, target[2].Severity);
24 }
25
26 [Fact]
27 public void Rebuild_same_severity_sorted_by_time_then_text()
28 {
29 var t0 = DateTimeOffset.Parse("2026-01-01T00:00:00Z");
30 var t1 = DateTimeOffset.Parse("2026-01-02T00:00:00Z");
31 var target = new ObservableCollection<EicasMessage>();
32 var m1 = new EicasMessage(EicasSeverity.Caution, "b", CreatedUtc: t1);
33 var m0 = new EicasMessage(EicasSeverity.Caution, "a", CreatedUtc: t0);
34
35 EicasMessageSorter.Rebuild(target, [m1, m0]);
36
37 Assert.Equal("a", target[0].Text);
38 Assert.Equal("b", target[1].Text);
39 }
40}
41
View only · write via MCP/CIDE