71 lines
2.1 KiB
C#
71 lines
2.1 KiB
C#
using Elwig.Helpers.Weighing;
|
|
|
|
namespace Tests.WeighingTests {
|
|
[TestFixture]
|
|
public class ScaleTestBadenL320 {
|
|
|
|
private EventMockScale? Mock;
|
|
private AveryEventScale? Scale;
|
|
|
|
private static (string, bool) ScaleHandler(int weight, string? error, int identNr) {
|
|
var modes = error?.Split(';') ?? [];
|
|
var invalid = modes.Contains("invalid");
|
|
var unit = modes.Contains("unit");
|
|
|
|
if (invalid) {
|
|
return ("abcd\r\n", false);
|
|
}
|
|
|
|
bool incr = true;
|
|
return ($" {new DateTime(2020, 9, 28, 9, 8, 0):dd.MM.yy HH:mm} {identNr,4} {weight,9}{(unit ? "lb" : "kg")} \r\n", incr);
|
|
}
|
|
|
|
[OneTimeSetUp]
|
|
public void SetupScale() {
|
|
Mock = new EventMockScale(12345, ScaleHandler);
|
|
Scale = new("1", "L320", "tcp://127.0.0.1:12345");
|
|
}
|
|
|
|
[OneTimeTearDown]
|
|
public void TeardownScale() {
|
|
Mock?.Dispose();
|
|
Scale?.Dispose();
|
|
}
|
|
|
|
[SetUp]
|
|
public void ResetScale() {
|
|
Mock!.IdentNr = 0;
|
|
Mock!.Weight = 0;
|
|
Mock!.Error = null;
|
|
}
|
|
|
|
[Test]
|
|
public async Task Test_01_Normal() {
|
|
WeighingResult? res = null;
|
|
Scale!.WeighingEvent += (sender, evt) => {
|
|
res = evt.Result;
|
|
};
|
|
|
|
await Mock!.Weigh(2345);
|
|
await Task.Delay(100);
|
|
Assert.That(res, Is.Not.Null);
|
|
Assert.That(res, Is.EqualTo(new WeighingResult {
|
|
Weight = 2345, WeighingId = "1",
|
|
FullWeighingId = $"2020-09-28/1",
|
|
Date = new DateOnly(2020, 9, 28), Time = new TimeOnly(9, 8),
|
|
}));
|
|
|
|
await Mock!.Weigh(4215);
|
|
await Task.Delay(100);
|
|
Assert.That(res, Is.Not.Null);
|
|
Assert.That(res, Is.EqualTo(new WeighingResult {
|
|
Weight = 4215,
|
|
WeighingId = "2",
|
|
FullWeighingId = $"2020-09-28/2",
|
|
Date = new DateOnly(2020, 9, 28),
|
|
Time = new TimeOnly(9, 8),
|
|
}));
|
|
}
|
|
}
|
|
}
|