7 instantiations of TraySavedState
Aspire.Tray.Tests (7)
src\Aspire.Tray\Common\TraySavedState.cs (1)
16
public static TraySavedState Empty { get; } =
new
([]);
TrayControllerPreferencesTests.cs (3)
77
var saved = new
TraySavedState
(paths.Select(path => new SavedAppHost(path, true, true)).ToArray()) { ConfirmStop = false };
95
var saved = new
TraySavedState
(Enumerable.Range(0, 20)
116
var saved = new
TraySavedState
(paths.Select(path => new SavedAppHost(path, false, true)).ToArray()) { ConfirmStop = false };
TraySavedStateTests.cs (2)
129
var state = new
TraySavedState
(paths.Select(path => new SavedAppHost(path, false, true)).ToArray());
139
var state = new
TraySavedState
(Enumerable.Range(0, 51)
TrayUserPreferencesTests.cs (1)
27
var saved = new
TraySavedState
([new(host, true, true)]) { ConfirmStop = false };
95 references to TraySavedState
Aspire.Tray.Tests (95)
Helpers\TestTraySavedStateStore.cs (4)
6
internal sealed class TestTraySavedStateStore(
TraySavedState
state) : ITraySavedStateStore
9
private
TraySavedState
_state = state;
35
public
TraySavedState
Load()
43
public void Save(
TraySavedState
state)
src\Aspire.Tray\Common\FileTraySavedStateStore.cs (6)
39
public
TraySavedState
Load()
51
var state = contents is null ?
TraySavedState
.Empty
76
public void Save(
TraySavedState
state)
165
private static void Validate(
TraySavedState
state)
183
|| (host.IsRecent && ++recent >
TraySavedState
.MaximumRecentAppHosts))
193
[JsonSerializable(typeof(
TraySavedState
))]
src\Aspire.Tray\Common\TrayConfiguration.cs (4)
85
return
TraySavedState
.DefaultRecentAppHostLimit;
94
if (!valid || limit is < 0 or >
TraySavedState
.MaximumRecentAppHosts)
102
return
TraySavedState
.DefaultRecentAppHostLimit;
131
+ $"and {RecentAppHostLimitKey} must be an integer from 0 to {
TraySavedState
.MaximumRecentAppHosts}. "
src\Aspire.Tray\Common\TrayController.cs (10)
20
private
TraySavedState
_savedState =
TraySavedState
.Empty;
36
: this(client, savedStateStore,
TraySavedState
.DefaultRecentAppHostLimit)
48
ArgumentOutOfRangeException.ThrowIfGreaterThan(recentAppHostLimit,
TraySavedState
.MaximumRecentAppHosts);
62
var
trimmed = _savedState.Trim(_recentAppHostLimit);
191
private void UpdateSavedState(Func<
TraySavedState
,
TraySavedState
> update)
199
var
next = update(_savedState);
547
var
state = _savedState;
561
private bool TrySaveStateLocked(
TraySavedState
state)
src\Aspire.Tray\Common\TraySavedState.cs (14)
16
public static
TraySavedState
Empty { get; } = new([]);
32
public
TraySavedState
Remember(string appHostPath) => Remember(appHostPath, DefaultRecentAppHostLimit);
34
public
TraySavedState
Remember(string appHostPath, int recentAppHostLimit)
44
public
TraySavedState
SetPinned(string appHostPath, bool pinned)
58
public
TraySavedState
ClearRecent()
61
public
TraySavedState
RemoveRecent(string appHostPath)
69
public
TraySavedState
RemoveMissingPins(IReadOnlySet<string> missingPaths)
72
public
TraySavedState
Trim(int recentAppHostLimit)
93
TraySavedState
Load();
94
void Save(
TraySavedState
state);
99
private
TraySavedState
_state =
TraySavedState
.Empty;
101
public
TraySavedState
Load() => _state;
103
public void Save(
TraySavedState
state) => _state = state;
TrayControllerPinPruningTests.cs (10)
22
store.Save(
TraySavedState
.Empty.Remember(retained).SetPinned(retained, true)
42
var
reloaded = new FileTraySavedStateStore(directory.StatePath).Load();
54
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
81
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
112
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
138
store.Save(
TraySavedState
.Empty.Remember(path));
162
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
201
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
243
store.Save(
TraySavedState
.Empty.Remember(restricted).Remember(deleted));
268
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
TrayControllerPreferencesTests.cs (8)
40
var store = new TestTraySavedStateStore(
TraySavedState
.Empty) { FailSaves = true };
77
var
saved = new TraySavedState(paths.Select(path => new SavedAppHost(path, true, true)).ToArray()) { ConfirmStop = false };
81
var
reloaded = new FileTraySavedStateStore(directory.StatePath).Load();
95
var
saved = new TraySavedState(Enumerable.Range(0, 20)
105
var
reloaded = new FileTraySavedStateStore(directory.StatePath).Load();
116
var
saved = new TraySavedState(paths.Select(path => new SavedAppHost(path, false, true)).ToArray()) { ConfirmStop = false };
142
var store = new TestTraySavedStateStore(
TraySavedState
.Empty);
177
var store = new TestTraySavedStateStore(
TraySavedState
.Empty);
TrayControllerSavedStateTests.cs (2)
185
store.Save(
TraySavedState
.Empty.Remember(pinned).Remember(recent).SetPinned(pinned, true));
433
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
TraySavedStateTests.cs (30)
27
var
saved =
TraySavedState
.Empty.Remember(first).Remember(second).SetPinned(first, true);
30
var
reloaded = new FileTraySavedStateStore(directory.StatePath).Load();
44
var
saved =
TraySavedState
.Empty.Remember(paths[0]).SetPinned(paths[0], true);
68
var
state = (
TraySavedState
.Empty with { ConfirmStop = false }).SetPinned(paths[0], true);
86
var
state = (
TraySavedState
.Empty with { ConfirmStop = false }).Remember(pinned).SetPinned(pinned, true).Remember(recent);
87
TraySavedState
[] transformed =
102
Assert.True(
TraySavedState
.Empty.ConfirmStop);
112
var
state =
TraySavedState
.Empty.Remember(path).SetPinned(path, true) with { ConfirmStop = confirmStop };
115
var
reloaded = new FileTraySavedStateStore(directory.StatePath).Load();
129
var
state = new TraySavedState(paths.Select(path => new SavedAppHost(path, false, true)).ToArray());
139
var
state = new TraySavedState(Enumerable.Range(0, 51)
142
store.Save(
TraySavedState
.Empty);
155
var
saved =
TraySavedState
.Empty.Remember(original).SetPinned(original, true).Remember(differentlyCased);
174
var
saved =
TraySavedState
.Empty.Remember(missing).SetPinned(missing, true).Remember(recent);
192
var
state =
TraySavedState
.Empty.Remember(pinned).SetPinned(pinned, true)
218
Assert.Throws<InvalidDataException>(() => store.Save(
TraySavedState
.Empty.Remember(Path.GetFullPath("apphost.cs"))));
227
store.Save(
TraySavedState
.Empty);
230
Assert.Throws<IOException>(() => store.Save(
TraySavedState
.Empty.Remember(Path.GetFullPath("apphost.cs"))));
240
store.Save(
TraySavedState
.Empty.Remember(path));
241
store.Save(
TraySavedState
.Empty.Remember(path).SetPinned(path, true));
242
store.Save(
TraySavedState
.Empty);
256
new FileTraySavedStateStore(directory.StatePath).Save(
TraySavedState
.Empty);
TrayUserPreferencesTests.cs (7)
16
store.Save(
TraySavedState
.Empty with { ConfirmStop = false });
27
var
saved = new TraySavedState([new(host, true, true)]) { ConfirmStop = false };
31
var
loaded = FileTraySavedStateStore.CreateWithLegacyMigration(directory.UserStatePath, directory.LegacyDirectory).Load();
44
.Save(
TraySavedState
.Empty with { ConfirmStop = false });
45
new FileTraySavedStateStore(directory.UserStatePath).Save(
TraySavedState
.Empty);
47
var
loaded = FileTraySavedStateStore.CreateWithLegacyMigration(directory.UserStatePath, directory.LegacyDirectory).Load();
63
Assert.Throws<InvalidDataException>(() => store.Save(
TraySavedState
.Empty));