Files
elwig/Tests/WeighingTests/ScaleTestBadenL320.cs

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),
}));
}
}
}