Skip to content

Commit

Permalink
fix: broken tests
Browse files Browse the repository at this point in the history
  • Loading branch information
MetalHexx committed Apr 5, 2024
1 parent d0f3875 commit 49212ba
Showing 1 changed file with 33 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using TeensyRom.Core.Serial;
using TeensyRom.Core.Serial.State;
using TeensyRom.Ui.Features.Connect;
using TeensyRom.Ui.Services;

namespace TeensyRom.Tests.Unit
{
Expand All @@ -21,6 +22,7 @@ public class ConnectViewModelTests
private readonly ILoggingService _logMock = Substitute.For<ILoggingService>();
private readonly IObservableSerialPort _observableSerialPort = Substitute.For<IObservableSerialPort>();
private readonly IAlertService _alertService = Substitute.For<IAlertService>();
private readonly IDialogService _dialogService = Substitute.For<IDialogService>();


[Fact]
Expand All @@ -29,7 +31,7 @@ public void Given_SerialPortsDoNotExist_SerialPortsEmpty()
//Arrange
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(Array.Empty<string>()).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Assert
viewModel.Ports.Should().BeNullOrEmpty();
Expand All @@ -41,7 +43,7 @@ public void Given_SerialPortsDoNotExist_NotConnected_And_NotConnectable()
//Arrange
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(Array.Empty<string>()).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Assert
viewModel.IsConnected.Should().BeFalse();
Expand All @@ -54,7 +56,7 @@ public void Given_SerialPortsExist_SerialPortsDisplayed()
//Arrange
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(["COM3", "COM4"]).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Assert
viewModel.Ports.Should().BeEquivalentTo(new[] { "Auto-detect", "COM3", "COM4" });
Expand All @@ -66,7 +68,7 @@ public void Given_SerialPortsExist_AutoIsSelected()
//Arrange
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(["COM3", "COM4"]).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Assert
viewModel.SelectedPort.Should().BeEquivalentTo("Auto-detect");
Expand All @@ -78,7 +80,7 @@ public void Given_SerialPortsExist_WhenSerialPortSelected_SerialPortSet()
//Arrange
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(["COM3", "COM4"]).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
viewModel.SelectedPort = "COM4";
Expand All @@ -93,7 +95,7 @@ public void Given_SerialPortsExist_WhenAutoSelect_PortIsNotSet()
//Arrange
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(["COM3", "COM4"]).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
viewModel.SelectedPort = "Auto-detect";
Expand All @@ -110,7 +112,7 @@ public void Given_SerialConnectedState_IsConnectedTrue()
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Assert
viewModel.IsConnected.Should().BeTrue();
Expand All @@ -122,7 +124,7 @@ public void Given_NoSerialPortsExist_IsConnectableFalse()
//Arrange
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(Array.Empty<string>()).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Assert
viewModel.IsConnectable.Should().BeFalse();
Expand All @@ -134,7 +136,7 @@ public void Given_SerialConnectableState_IsConnectableTrue()
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectableState(_observableSerialPort)).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Assert
viewModel.IsConnectable.Should().BeTrue();
Expand Down Expand Up @@ -163,7 +165,7 @@ public void Given_IsConnectable_When_ConnectCommandExecuted_WithAutoPort_Retries
.When(x => x.SetPort(Arg.Is<string>(s => s != "COM3")))
.Do(_ => currentStateSubject.OnNext(new SerialConnectableState(_observableSerialPort)));

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
viewModel.ConnectCommand.Execute().Subscribe();
Expand All @@ -184,7 +186,7 @@ public async Task Given_IsConnectable_When_ConnectCommandExecuted_AndConnectionF
.Send(Arg.Any<ResetCommand>())
.Returns(new ResetResult { IsSuccess = false, Error = "Error Message" });

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
viewModel.ConnectCommand.Execute().Subscribe();
Expand All @@ -205,7 +207,7 @@ public void Given_IsConnectable_When_ConnectCommandExecuted_And_SinglePortSelect
.Send(Arg.Any<ResetCommand>())
.Returns(new ResetResult { IsSuccess = false, Error = "Error Message" });

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);
viewModel.SelectedPort = "COM3";

//Act
Expand All @@ -223,7 +225,7 @@ public void Given_IsConnectable_When_ConnectCommandExecuted_And_SinglePortSelect
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectableState(_observableSerialPort)).AsObservable());
_serialMock.Ports.Returns(new BehaviorSubject<string[]>(["COM1", "COM2", "COM3", "COM4"]).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);
viewModel.SelectedPort = "COM3";

//Act
Expand All @@ -241,7 +243,7 @@ public void Given_IsConnected_When_DisconnectCommandExecuted_SerialPortClosed()
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());
var logMock = Substitute.For<ILoggingService>();

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, logMock, _alertService, _dialogService);

//Act
viewModel.DisconnectCommand.Execute().Subscribe();
Expand All @@ -257,7 +259,7 @@ public void Given_IsConnected_When_PingCommandExecuted_PingCommandCalled()
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());
var logMock = Substitute.For<ILoggingService>();

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, logMock, _alertService, _dialogService);

//Act
viewModel.PingCommand.Execute().Subscribe();
Expand All @@ -273,7 +275,7 @@ public void Given_IsConnected_When_ResetCommandExecuted_ResetCommandCalled()
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());
var logMock = Substitute.For<ILoggingService>();

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, logMock, _alertService, _dialogService);

//Act
viewModel.ResetCommand.Execute().Subscribe();
Expand All @@ -289,7 +291,7 @@ public void Given_IsConnected_WhenDisconnectCommandExecuted_SerialPortClosed()
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());

var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
viewModel.DisconnectCommand.Execute().Subscribe();
Expand All @@ -304,7 +306,7 @@ public void Given_IsConnectable_Then_ConnectCommand_CanBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectableState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.ConnectCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -318,7 +320,7 @@ public void Given_IsNotConnectable_Then_ConnectCommand_CannotBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialStartState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.ConnectCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -332,7 +334,7 @@ public void Given_IsConnected_Then_DisconnectCommand_CanBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.DisconnectCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -346,7 +348,7 @@ public void Given_IsNotConnected_Then_DisconnectCommand_CannotBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialStartState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.DisconnectCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -360,7 +362,7 @@ public void Given_IsConnected_Then_PingCommand_CanBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.PingCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -374,7 +376,7 @@ public void Given_IsNotConnected_Then_PingCommand_CannotBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialStartState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.PingCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -388,7 +390,7 @@ public void Given_IsConnected_Then_ResetCommand_CanBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialConnectedState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.ResetCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -402,7 +404,7 @@ public void Given_IsNotConnected_Then_ResetCommand_CannotBeExecuted()
{
//Arrange
_serialMock.CurrentState.Returns(new BehaviorSubject<SerialState>(new SerialStartState(_observableSerialPort)).AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.ResetCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -417,7 +419,7 @@ public void When_LogServiceEmitsLogs_LogsAreAvailable()
//Arrange
var logSubject = new BehaviorSubject<string>("log1");
_logMock.Logs.Returns(logSubject.AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
logSubject.OnNext("log2");
Expand All @@ -434,7 +436,7 @@ public void Given_LogsExist_When_LogCommandIsCalled_LogsAreCleared()
//Arrange
var logSubject = new BehaviorSubject<string>("log1");
_logMock.Logs.Returns(logSubject.AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
logSubject.OnNext("log2");
Expand All @@ -452,7 +454,7 @@ public void Given_ThereAre20Logs_When_NextLogAdded_FirstLogRemoved()
//Arrange
var logSubject = new BehaviorSubject<string>("log0");
_logMock.Logs.Returns(logSubject.AsObservable());
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

foreach (var i in Enumerable.Range(1, 19))
{
Expand All @@ -471,7 +473,7 @@ public void Given_ThereAre20Logs_When_NextLogAdded_FirstLogRemoved()
public void Given_ThereAreNoLogs_Then_ClearLogsCommand_CannotBeExecuted()
{
//Arrange
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
viewModel.ClearLogsCommand.Execute().Subscribe();
Expand All @@ -485,7 +487,7 @@ public void Given_ThereAreNoLogs_Then_ClearLogsCommand_CannotBeExecuted()
public void Given_ThereAreLogs_Then_ClearLogsCommand_CannotBeExecuted()
{
//Arrange
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService);
var viewModel = new ConnectViewModel(_mediatorMock, _serialMock, _logMock, _alertService, _dialogService);

//Act
var canExecute = viewModel.ClearLogsCommand.CanExecute.FirstAsync().Wait();
Expand All @@ -494,4 +496,5 @@ public void Given_ThereAreLogs_Then_ClearLogsCommand_CannotBeExecuted()
canExecute.Should().BeTrue();
}
}
//TODO: Add tests to check dialog service behavior.
}

0 comments on commit 49212ba

Please sign in to comment.