This commit is contained in:
		
							
								
								
									
										128
									
								
								Tests/UnitTests/WeighingTests/ScaleTestWolkersdorfIT6000E.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								Tests/UnitTests/WeighingTests/ScaleTestWolkersdorfIT6000E.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
			
		||||
using Elwig.Helpers.Weighing;
 | 
			
		||||
 | 
			
		||||
namespace Tests.UnitTests.WeighingTests {
 | 
			
		||||
    [TestFixture]
 | 
			
		||||
    class ScaleTestWolkersdorfIT6000E {
 | 
			
		||||
 | 
			
		||||
        private MockScale MockA;
 | 
			
		||||
        private MockScale MockB;
 | 
			
		||||
        private SysTecITScale ScaleA;
 | 
			
		||||
        private SysTecITScale ScaleB;
 | 
			
		||||
 | 
			
		||||
        [OneTimeSetUp]
 | 
			
		||||
        public void SetupScale() {
 | 
			
		||||
            MockA = new CommandMockScale(12345, (req, weight, tare, error, identNr) => ScaleHandlers.Handle_IT6000E(req, weight, tare, error, identNr, "A"));
 | 
			
		||||
            MockB = new CommandMockScale(12346, (req, weight, tare, error, identNr) => ScaleHandlers.Handle_IT6000E(req, weight, tare, error, identNr, "B"));
 | 
			
		||||
            ScaleA = new("A", "IT3000E", "tcp://127.0.0.1:12345");
 | 
			
		||||
            ScaleB = new("B", "IT3000E", "tcp://127.0.0.1:12346");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [OneTimeTearDown]
 | 
			
		||||
        public void TeardownScale() {
 | 
			
		||||
            MockA.Dispose();
 | 
			
		||||
            MockB.Dispose();
 | 
			
		||||
            ScaleA.Dispose();
 | 
			
		||||
            ScaleB.Dispose();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [SetUp]
 | 
			
		||||
        public void ResetScale() {
 | 
			
		||||
            MockA.IdentNr = 0;
 | 
			
		||||
            MockA.Weight = 0;
 | 
			
		||||
            MockA.Error = null;
 | 
			
		||||
            MockB.IdentNr = 0;
 | 
			
		||||
            MockB.Weight = 0;
 | 
			
		||||
            MockB.Error = null;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public async Task Test_01_CurrentWeight() {
 | 
			
		||||
            MockA.Weight = 1234;
 | 
			
		||||
            Assert.That(await ScaleA!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 1234, TareWeight = 0, NetWeight = 1234,
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
            MockB.Weight = 3456;
 | 
			
		||||
            Assert.That(await ScaleB!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 3456, TareWeight = 0, NetWeight = 3456,
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
            MockA.Weight = 1236;
 | 
			
		||||
            Assert.That(await ScaleA!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 1236, TareWeight = 0, NetWeight = 1236,
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
            MockB.Weight = 3457;
 | 
			
		||||
            Assert.That(await ScaleB!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 3457, TareWeight = 0, NetWeight = 3457,
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public async Task Test_02_Normal() {
 | 
			
		||||
            MockA.Weight = 1234;
 | 
			
		||||
            Assert.That(await ScaleA!.Weigh(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 1234, TareWeight = 0, NetWeight = 1234,
 | 
			
		||||
                WeighingId = "1", FullWeighingId = $"2020-10-08/1",
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
            MockB.Weight = 3456;
 | 
			
		||||
            Assert.That(await ScaleB!.Weigh(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 3456, TareWeight = 0, NetWeight = 3456,
 | 
			
		||||
                WeighingId = "1", FullWeighingId = $"2020-10-08/1",
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
            MockA.Weight = 4321;
 | 
			
		||||
            Assert.That(await ScaleA!.Weigh(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 4321, TareWeight = 0, NetWeight = 4321,
 | 
			
		||||
                WeighingId = "2", FullWeighingId = $"2020-10-08/2",
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
            MockB.Weight = 3333;
 | 
			
		||||
            Assert.That(await ScaleB!.Weigh(), Is.EqualTo(new WeighingResult {
 | 
			
		||||
                GrossWeight = 3333, TareWeight = 0, NetWeight = 3333,
 | 
			
		||||
                WeighingId = "2", FullWeighingId = $"2020-10-08/2",
 | 
			
		||||
                Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
 | 
			
		||||
            }));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void Test_03_Moving() {
 | 
			
		||||
            MockA.Weight = 1_000;
 | 
			
		||||
            MockA.Error = "moving";
 | 
			
		||||
            IOException ex = Assert.ThrowsAsync<IOException>(async () => await ScaleA!.Weigh());
 | 
			
		||||
            Assert.That(ex.Message, Contains.Substring("Waage in Bewegung"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void Test_04_Overloaded() {
 | 
			
		||||
            MockA.Weight = 10_000;
 | 
			
		||||
            MockA.Error = "overloaded";
 | 
			
		||||
            IOException ex = Assert.ThrowsAsync<IOException>(async () => await ScaleA!.Weigh());
 | 
			
		||||
            Assert.That(ex.Message, Contains.Substring("Waage in Überlast"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void Test_05_InvalidResponse() {
 | 
			
		||||
            MockA.Weight = 1_000;
 | 
			
		||||
            MockA.Error = "invalid";
 | 
			
		||||
            Assert.ThrowsAsync<IOException>(async () => await ScaleA!.Weigh());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void Test_06_InvalidCrc() {
 | 
			
		||||
            MockA.Weight = 1_000;
 | 
			
		||||
            MockA.Error = "crc";
 | 
			
		||||
            IOException ex = Assert.ThrowsAsync<IOException>(async () => await ScaleA!.Weigh());
 | 
			
		||||
            Assert.That(ex.Message, Contains.Substring("Invalid CRC16 checksum"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void Test_07_InvalidUnit() {
 | 
			
		||||
            MockA.Weight = 1_000;
 | 
			
		||||
            MockA.Error = "unit";
 | 
			
		||||
            IOException ex = Assert.ThrowsAsync<IOException>(async () => await ScaleA!.Weigh());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user