Skip to content

Commit 234b8fb

Browse files
committed
Cleanup FirmwareServices/Tests
1 parent 002747b commit 234b8fb

File tree

6 files changed

+236
-274
lines changed

6 files changed

+236
-274
lines changed

src/Baballonia.Tests/FirmwareTests/FirmwareIntegrationTest.cs

Lines changed: 65 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -4,90 +4,89 @@
44
using Microsoft.Extensions.Logging;
55
using Microsoft.VisualStudio.TestTools.UnitTesting;
66

7-
namespace Baballonia.Tests.FirmwareTests
7+
namespace Baballonia.Tests.FirmwareTests;
8+
9+
// Here we'll put integration testing with a real microcontroller
10+
[TestClass]
11+
public class FirmwareIntegrationTest
812
{
9-
// Here we'll put integration testing with a real microcontroller
10-
[TestClass]
11-
public class FirmwareIntegrationTest
12-
{
13-
private static readonly string PORT = "COM4";
14-
private static readonly string WIFI_SSID = "ASUS_50";
15-
private static readonly string WIFI_PWD = "172839456";
13+
private static readonly string PORT = "COM4";
14+
private static readonly string WIFI_SSID = "ASUS_50";
15+
private static readonly string WIFI_PWD = "172839456";
1616

17-
private ILogger _logger;
17+
private ILogger _logger;
1818

19-
[TestInitialize]
20-
public void Initialize()
21-
{
22-
var loggerFactory = LoggerFactory.Create(builder =>
23-
{
24-
builder
25-
.AddConsole()
26-
.SetMinimumLevel(LogLevel.Debug);
27-
});
28-
29-
_logger = loggerFactory.CreateLogger("TEST");
30-
}
31-
32-
[TestMethod]
33-
public void TestBoard()
19+
[TestInitialize]
20+
public void Initialize()
21+
{
22+
var loggerFactory = LoggerFactory.Create(builder =>
3423
{
35-
var session = new FirmwareSessionV1(new SerialCommandSender(PORT), _logger);
36-
Assert.IsNotNull(session.WaitForHeartbeat(TimeSpan.FromSeconds(10)));
37-
}
24+
builder
25+
.AddConsole()
26+
.SetMinimumLevel(LogLevel.Debug);
27+
});
3828

39-
[TestMethod]
40-
public void FindAndConnectWifiSuccess()
41-
{
42-
var session = new FirmwareSessionV1(new SerialCommandSender(PORT), _logger);
29+
_logger = loggerFactory.CreateLogger("TEST");
30+
}
31+
32+
[TestMethod]
33+
public void TestBoard()
34+
{
35+
var session = new FirmwareSessionV1(new SerialCommandSender(PORT), _logger);
36+
Assert.IsNotNull(session.WaitForHeartbeat(TimeSpan.FromSeconds(10)));
37+
}
4338

44-
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
45-
session.SendCommand(new FirmwareRequests.SetPausedRequest(true), TimeSpan.FromSeconds(30));
46-
var networks = session.SendCommand(new FirmwareRequests.ScanWifiRequest(), TimeSpan.FromSeconds(30));
47-
Assert.IsTrue(networks.IsSuccess);
39+
[TestMethod]
40+
public void FindAndConnectWifiSuccess()
41+
{
42+
var session = new FirmwareSessionV1(new SerialCommandSender(PORT), _logger);
4843

49-
var find = networks.Value!.Networks.Find(network => network.Ssid == WIFI_SSID);
50-
Assert.IsNotNull(find);
44+
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
45+
session.SendCommand(new FirmwareRequests.SetPausedRequest(true), TimeSpan.FromSeconds(30));
46+
var networks = session.SendCommand(new FirmwareRequests.ScanWifiRequest(), TimeSpan.FromSeconds(30));
47+
Assert.IsTrue(networks.IsSuccess);
5148

52-
session.SendCommand(new FirmwareRequests.SetWifiRequest(WIFI_SSID, WIFI_PWD), TimeSpan.FromSeconds(30));
49+
var find = networks.Value!.Networks.Find(network => network.Ssid == WIFI_SSID);
50+
Assert.IsNotNull(find);
5351

54-
var connectionres = session.SendCommand(new FirmwareRequests.ConnectWifiRequest(), TimeSpan.FromSeconds(30));
55-
Assert.IsNotNull(connectionres);
52+
session.SendCommand(new FirmwareRequests.SetWifiRequest(WIFI_SSID, WIFI_PWD), TimeSpan.FromSeconds(30));
5653

57-
var wifistatus = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest(), TimeSpan.FromSeconds(30));
58-
Assert.IsTrue(wifistatus.IsSuccess);
59-
Assert.AreEqual("connected", wifistatus.Value!.Status);
54+
var connectionres = session.SendCommand(new FirmwareRequests.ConnectWifiRequest(), TimeSpan.FromSeconds(30));
55+
Assert.IsNotNull(connectionres);
6056

61-
session.SendCommand(new FirmwareRequests.SetPausedRequest(false), TimeSpan.FromSeconds(30));
57+
var wifistatus = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest(), TimeSpan.FromSeconds(30));
58+
Assert.IsTrue(wifistatus.IsSuccess);
59+
Assert.AreEqual("connected", wifistatus.Value!.Status);
6260

63-
session.Dispose();
64-
}
61+
session.SendCommand(new FirmwareRequests.SetPausedRequest(false), TimeSpan.FromSeconds(30));
6562

66-
[TestMethod]
67-
public void FindAndConnectWifiFail()
68-
{
69-
var session = new FirmwareSessionV1(new SerialCommandSender(PORT), _logger);
63+
session.Dispose();
64+
}
65+
66+
[TestMethod]
67+
public void FindAndConnectWifiFail()
68+
{
69+
var session = new FirmwareSessionV1(new SerialCommandSender(PORT), _logger);
7070

71-
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
72-
session.SendCommand(new FirmwareRequests.SetPausedRequest(true), TimeSpan.FromSeconds(30));
73-
var networks = session.SendCommand(new FirmwareRequests.ScanWifiRequest(), TimeSpan.FromSeconds(30));
74-
Assert.IsTrue(networks.IsSuccess);
71+
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
72+
session.SendCommand(new FirmwareRequests.SetPausedRequest(true), TimeSpan.FromSeconds(30));
73+
var networks = session.SendCommand(new FirmwareRequests.ScanWifiRequest(), TimeSpan.FromSeconds(30));
74+
Assert.IsTrue(networks.IsSuccess);
7575

76-
var find = networks.Value!.Networks.Find(network => network.Ssid == WIFI_SSID);
77-
Assert.IsNotNull(find);
76+
var find = networks.Value!.Networks.Find(network => network.Ssid == WIFI_SSID);
77+
Assert.IsNotNull(find);
7878

79-
session.SendCommand(new FirmwareRequests.SetWifiRequest("", WIFI_PWD), TimeSpan.FromSeconds(30));
79+
session.SendCommand(new FirmwareRequests.SetWifiRequest("", WIFI_PWD), TimeSpan.FromSeconds(30));
8080

81-
var connectionres = session.SendCommand(new FirmwareRequests.ConnectWifiRequest(), TimeSpan.FromSeconds(30));
82-
Assert.IsNotNull(connectionres);
81+
var connectionres = session.SendCommand(new FirmwareRequests.ConnectWifiRequest(), TimeSpan.FromSeconds(30));
82+
Assert.IsNotNull(connectionres);
8383

84-
var wifistatus = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest(), TimeSpan.FromSeconds(30));
85-
Assert.IsTrue(wifistatus.IsSuccess);
86-
Assert.AreEqual("error", wifistatus.Value!.Status);
84+
var wifistatus = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest(), TimeSpan.FromSeconds(30));
85+
Assert.IsTrue(wifistatus.IsSuccess);
86+
Assert.AreEqual("error", wifistatus.Value!.Status);
8787

88-
session.SendCommand(new FirmwareRequests.SetPausedRequest(false), TimeSpan.FromSeconds(30));
88+
session.SendCommand(new FirmwareRequests.SetPausedRequest(false), TimeSpan.FromSeconds(30));
8989

90-
session.Dispose();
91-
}
90+
session.Dispose();
9291
}
93-
}
92+
}

src/Baballonia.Tests/FirmwareTests/FirmwareServiceTest.cs

Lines changed: 97 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -7,132 +7,124 @@
77
using Microsoft.VisualStudio.TestTools.UnitTesting;
88
using Moq;
99

10-
namespace Baballonia.Tests.FirmwareTests
10+
namespace Baballonia.Tests.FirmwareTests;
11+
12+
class MockCommandSender(List<string> lines) : ICommandSender
1113
{
12-
class MockCommandSender : ICommandSender
14+
public void Dispose()
1315
{
14-
private List<string> lines;
15-
16-
public MockCommandSender(List<string> lines)
17-
{
18-
this.lines = lines;
19-
}
2016

21-
public void Dispose()
22-
{
23-
24-
}
25-
26-
public string ReadLine(TimeSpan timeout)
27-
{
28-
string line = lines[0];
29-
lines.RemoveAt(0);
17+
}
3018

31-
return line;
32-
}
19+
public string ReadLine(TimeSpan timeout)
20+
{
21+
var line = lines[0];
22+
lines.RemoveAt(0);
3323

34-
public void WriteLine(string message)
35-
{
36-
}
24+
return line;
3725
}
38-
[TestClass]
39-
public class FirmwareServiceTest
26+
27+
public void WriteLine(string message)
4028
{
41-
private ILoggerFactory _loggerFactory;
42-
private ILogger _logger;
29+
}
30+
}
31+
[TestClass]
32+
public class FirmwareServiceTest
33+
{
34+
private ILoggerFactory _loggerFactory;
35+
private ILogger _logger;
4336

44-
[TestInitialize]
45-
public void Initialize()
37+
[TestInitialize]
38+
public void Initialize()
39+
{
40+
_loggerFactory = LoggerFactory.Create(builder =>
4641
{
47-
_loggerFactory = LoggerFactory.Create(builder =>
48-
{
49-
builder
50-
.AddConsole()
51-
.SetMinimumLevel(LogLevel.Trace);
52-
});
42+
builder
43+
.AddConsole()
44+
.SetMinimumLevel(LogLevel.Trace);
45+
});
5346

54-
_logger = _loggerFactory.CreateLogger("TEST");
55-
}
47+
_logger = _loggerFactory.CreateLogger("TEST");
48+
}
5649

5750

58-
private FirmwareService CreateService(List<string> mockResponses)
59-
{
60-
var loggerFactory = LoggerFactory.Create(builder =>
61-
{
62-
builder
63-
.AddConsole()
64-
.SetMinimumLevel(LogLevel.Trace);
65-
});
66-
67-
var serviceLogger = loggerFactory.CreateLogger<FirmwareService>();
68-
var logger = loggerFactory.CreateLogger<FirmwareServiceTest>();
69-
70-
var mockCommandSenderFactory = new Mock<ICommandSenderFactory>();
71-
mockCommandSenderFactory
72-
.Setup(s => s.Create(CommandSenderType.Serial, "COM4"))
73-
.Returns(new MockCommandSender(mockResponses));
74-
75-
return new FirmwareService(serviceLogger, mockCommandSenderFactory.Object);
76-
}
77-
[TestMethod]
78-
public void TestSendCommand()
51+
private FirmwareService CreateService(List<string> mockResponses)
52+
{
53+
var loggerFactory = LoggerFactory.Create(builder =>
7954
{
80-
List<string> mockLines = new List<string>();
81-
mockLines.Add("""{"heartbeat":{}}""");
82-
mockLines.Add("""{"results": ["{\"result\":\"{\\\"status\\\":\\\"connected\\\",\\\"networks_configured\\\":1,\\\"ip_address\\\":\\\"192.168.0.246\\\"}\"}"]} """);
55+
builder
56+
.AddConsole()
57+
.SetMinimumLevel(LogLevel.Trace);
58+
});
8359

84-
var firmwareService = CreateService(mockLines);
60+
var serviceLogger = loggerFactory.CreateLogger<FirmwareService>();
61+
var logger = loggerFactory.CreateLogger<FirmwareServiceTest>();
8562

86-
var session = firmwareService.StartSession(CommandSenderType.Serial, "COM4");
87-
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
63+
var mockCommandSenderFactory = new Mock<ICommandSenderFactory>();
64+
mockCommandSenderFactory
65+
.Setup(s => s.Create(CommandSenderType.Serial, "COM4"))
66+
.Returns(new MockCommandSender(mockResponses));
8867

89-
var results = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest(), TimeSpan.FromSeconds(10));
90-
Assert.AreEqual("192.168.0.246", results.Value!.IpAddress);
91-
}
68+
return new FirmwareService(serviceLogger, mockCommandSenderFactory.Object);
69+
}
70+
[TestMethod]
71+
public void TestSendCommand()
72+
{
73+
var mockLines = new List<string>();
74+
mockLines.Add("""{"heartbeat":{}}""");
75+
mockLines.Add("""{"results": ["{\"result\":\"{\\\"status\\\":\\\"connected\\\",\\\"networks_configured\\\":1,\\\"ip_address\\\":\\\"192.168.0.246\\\"}\"}"]} """);
9276

77+
var firmwareService = CreateService(mockLines);
9378

94-
[TestMethod]
95-
public void TestSendBatchCommand()
96-
{
97-
// List<string> mockLines = new List<string>();
98-
// mockLines.Add("""{"heartbeat":{}}""");
99-
// mockLines.Add("""
100-
// {"results":[
101-
// {"command_name":"pause", "status": "SUCCESS" },
102-
// {"command_name":"get_wifi_status", "status": "SUCCESS" }
103-
// ]}
104-
// """);
105-
//
106-
// var firmwareService = CreateService(mockLines);
107-
// var session = firmwareService.StartSession(CommandSenderType.Serial, "COM4");
108-
// session.WaitForHeartbeat();
109-
//
110-
// session.SendCommand(new FirmwareRequests.SetPausedRequest(true));
111-
// var commandResult = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest());
112-
// Assert.AreEqual("");
113-
}
114-
115-
[TestMethod]
116-
public void TestSendGeneric()
117-
{
118-
List<string> mockLines = new List<string>();
119-
mockLines.Add("""{"heartbeat":{}}""");
120-
mockLines.Add("""
121-
{"results":[
122-
"{\"command_name\":\"pause\", \"status\":\"SUCCESS\"}"
123-
]}
124-
""");
79+
var session = firmwareService.StartSession(CommandSenderType.Serial, "COM4");
80+
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
12581

126-
var firmwareService = CreateService(mockLines);
127-
var session = firmwareService.StartSession(CommandSenderType.Serial, "COM4");
128-
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
82+
var results = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest(), TimeSpan.FromSeconds(10));
83+
Assert.AreEqual("192.168.0.246", results.Value!.IpAddress);
84+
}
12985

130-
var commandResult = session.SendCommand(new FirmwareRequests.SetPausedRequest(true), TimeSpan.FromSeconds(10));
131-
Assert.AreEqual("""
132-
{"command_name":"pause", "status":"SUCCESS"}
133-
""", commandResult.Value!.ToString());
134-
}
13586

87+
[TestMethod]
88+
public void TestSendBatchCommand()
89+
{
90+
// List<string> mockLines = new List<string>();
91+
// mockLines.Add("""{"heartbeat":{}}""");
92+
// mockLines.Add("""
93+
// {"results":[
94+
// {"command_name":"pause", "status": "SUCCESS" },
95+
// {"command_name":"get_wifi_status", "status": "SUCCESS" }
96+
// ]}
97+
// """);
98+
//
99+
// var firmwareService = CreateService(mockLines);
100+
// var session = firmwareService.StartSession(CommandSenderType.Serial, "COM4");
101+
// session.WaitForHeartbeat();
102+
//
103+
// session.SendCommand(new FirmwareRequests.SetPausedRequest(true));
104+
// var commandResult = session.SendCommand(new FirmwareRequests.GetWifiStatusRequest());
105+
// Assert.AreEqual("");
106+
}
136107

108+
[TestMethod]
109+
public void TestSendGeneric()
110+
{
111+
var mockLines = new List<string>();
112+
mockLines.Add("""{"heartbeat":{}}""");
113+
mockLines.Add("""
114+
{"results":[
115+
"{\"command_name\":\"pause\", \"status\":\"SUCCESS\"}"
116+
]}
117+
""");
118+
119+
var firmwareService = CreateService(mockLines);
120+
var session = firmwareService.StartSession(CommandSenderType.Serial, "COM4");
121+
session.WaitForHeartbeat(TimeSpan.FromSeconds(10));
122+
123+
var commandResult = session.SendCommand(new FirmwareRequests.SetPausedRequest(true), TimeSpan.FromSeconds(10));
124+
Assert.AreEqual("""
125+
{"command_name":"pause", "status":"SUCCESS"}
126+
""", commandResult.Value!.ToString());
137127
}
128+
129+
138130
}

0 commit comments

Comments
 (0)