test(app): add docker and main window view model tests
This commit is contained in:
1 parent
1f1b78e50b
commit
36fbba0250
3 files changed
+179
No files matched your search
@@ -0,0 +1,47 @@
|
||||
using Vantage.App.ViewModels;
|
||||
using Vantage.Core.Docker;
|
||||
using Vantage.Core.Models;
|
||||
using Xunit;
|
||||
|
||||
namespace Vantage.App.Tests;
|
||||
|
||||
public class DockerViewModelTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task RefreshAsync_PopulatesContainersForHost()
|
||||
{
|
||||
var viewModel = new DockerViewModel(new MockDockerProvider());
|
||||
viewModel.SetHost(new HostConfig { Id = "h1" });
|
||||
|
||||
await viewModel.RefreshAsync(CancellationToken.None);
|
||||
|
||||
Assert.NotEmpty(viewModel.Containers);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task RefreshAsync_WithoutHostDoesNothing()
|
||||
{
|
||||
var viewModel = new DockerViewModel(new MockDockerProvider());
|
||||
|
||||
await viewModel.RefreshAsync(CancellationToken.None);
|
||||
|
||||
Assert.Empty(viewModel.Containers);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task StopCommand_TransitionsSelectedContainerToExited()
|
||||
{
|
||||
var viewModel = new DockerViewModel(new MockDockerProvider());
|
||||
viewModel.SetHost(new HostConfig { Id = "h2" });
|
||||
await viewModel.RefreshAsync(CancellationToken.None);
|
||||
|
||||
var running = viewModel.Containers.First(c => c.IsRunning);
|
||||
viewModel.SelectedContainer = running;
|
||||
|
||||
await viewModel.StopCommand.ExecuteAsync(running);
|
||||
|
||||
var reloaded = viewModel.Containers.First(c => c.Id == running.Id);
|
||||
Assert.Equal(ContainerState.Exited, reloaded.State);
|
||||
Assert.False(reloaded.IsRunning);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user