public void Load_Component_Is_Updated_Correctly() { TestStandMapping mapping = new TestStandMapping(); Session session = new Session(mapping); const byte ID = 0; // Value = -200 = 0xFF38 byte valMSB = 0xFF; byte valLSB = 0x38; byte[] buffer = { ID, valMSB, valLSB }; LoadComponent expectedResult = new LoadComponent(0, "", ""); session.UpdateComponents(buffer); expectedResult.Set(-200); Assert.AreEqual(expectedResult.Newtons(), ((LoadComponent)mapping.ComponentsByID()[ID]).Newtons()); // Value = 200 = 0x00C8 valMSB = 0x00; valLSB = 0xC8; buffer = new [] { ID, valMSB, valLSB }; session.UpdateComponents(buffer); expectedResult.Set(200); Assert.AreEqual(expectedResult.Newtons(), ((LoadComponent)mapping.ComponentsByID()[ID]).Newtons()); }
public void Single_Component_Is_Updated_After_Incoming_Data_Without_Logging() { byte ID = 0; // Value = 1337 = 0x539 byte valMSB = 0x05; byte valLSB = 0x39; LoadComponent expectedResult = new LoadComponent(0, "", ""); expectedResult.Set(1337); TestStandMapping mapping = new TestStandMapping(); Session session = new Session(mapping); Mock <IDataLog> dataMock = new Mock <IDataLog>(); Mock <ISerialPort> serialMock = new Mock <ISerialPort>(); byte[] buffer = { 0xAA, 0xBB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x03, ID, valMSB, valLSB, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0xBB }; int i = 0; serialMock.Setup(x => x.IsOpen).Returns(true).Callback(() => Console.WriteLine("IsOpen called")); serialMock.Setup(x => x.BytesToRead).Returns(buffer.Length - i).Callback(() => Console.WriteLine("BytesToRead called")); serialMock.Setup(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>())) .Returns((byte[] b, int o, int c) => { int nbytes = Math.Min(c, buffer.Length - i); Array.Copy(buffer, i, b, 0, nbytes); i += nbytes; i = (i >= buffer.Length) ? 0 : i; Console.WriteLine("Got {0} bytes", nbytes); return(nbytes); }).Callback(() => Console.WriteLine("Read called")); bool wait = true; IOThread conn = new IOThread(dataMock.Object, ref session); dataMock.Setup(x => x.Enqueue(It.IsAny <DataPacket>())).Callback((DataPacket dp) => { session.UpdateComponents(dp.Bytes); conn.StopConnection(); wait = false; }); conn.StartConnection(serialMock.Object, null); Console.WriteLine("Thread started"); Stopwatch watch = new Stopwatch(); watch.Start(); while (wait && watch.ElapsedMilliseconds < 2000) { Thread.Sleep(100); } Assert.AreEqual(expectedResult.Newtons(), ((LoadComponent)mapping.ComponentsByID()[ID]).Newtons()); }
public void Verify_Tare() { TestStandMapping mapping = new TestStandMapping(); Session session = new Session(mapping); DataStore dataStore = new DataStore(session); Mock <IUserInterface> ui = new Mock <IUserInterface>(); Mock <LogThread> logThread = new Mock <LogThread>(dataStore); IOThread ioThread = new IOThread(dataStore, ref session); Program p = new Program(dataStore, logThread.Object, ioThread, ui.Object); LoadComponent l = (mapping.ComponentsByID()[0] as LoadComponent); Assert.AreEqual(0, l.Newtons()); l.Set(10); Assert.AreEqual(18.83217116, l.Newtons(), 0.01); l.Tare(); l.Set(10); Assert.AreEqual(0, l.Newtons(), 0.01); l.Set(200); Assert.AreEqual(357.8112522, l.Newtons(), 0.01); }
public void Single_Component_Is_Updated_By_DataPacket_With_Negative_Value() { byte ID = 0; // Value = -1337 = 0xFAC7 byte valMSB = 0xFA; byte valLSB = 0xC7; LoadComponent expectedResult = new LoadComponent(0, "", ""); expectedResult.Set(-1337); TestStandMapping mapping = new TestStandMapping(); Session session = new Session(mapping); byte[] buffer = { ID, valMSB, valLSB }; session.UpdateComponents(buffer); Assert.AreEqual(expectedResult.Newtons(), ((LoadComponent)mapping.ComponentsByID()[ID]).Newtons()); }
public void Single_Component_Is_Updated_By_DataPacket_Verify_Sign_Extension() { byte ID = 0; // Value = 250 = 0x00FA byte valMSB = 0x00; byte valLSB = 0xFA; LoadComponent expectedResult = new LoadComponent(0, "", ""); expectedResult.Set(250); TestStandMapping mapping = new TestStandMapping(); Session session = new Session(mapping); byte[] buffer = { ID, valMSB, valLSB }; session.UpdateComponents(buffer); Assert.AreEqual(expectedResult.Newtons(), ((LoadComponent)mapping.ComponentsByID()[ID]).Newtons()); }