Example #1
0
        public void GetShortStatus2Test()
        {
            Mock<ICommunication> plcComm = PlcHelper.GetPlcCommunicationMock();
            string read = string.Empty;
            plcComm.Setup(x => x.Read()).Returns(() => { return read; });
            plcComm.Setup(x => x.Write(It.IsAny<string>())).Callback<string>((s) =>
            {
                if (s.StartsWith("\u000500FFCR000140060C"))
                    read = "\u000200FF000000010001000700020006\u0003" + PlcStream.CalculateCheckSum("00FF000000010001000700020006\u0003");
                if (s.StartsWith("\u000500FFCR0001200105"))
                    read = "\u000200FF0000\u0003" + PlcStream.CalculateCheckSum("00FF0000\u0003");
            });

            PolishLinePlc target = new PolishLinePlc(plcComm.Object);
            target.Open();

            IPolishingShortStatus target1 = target.GetShortStatus();

            // Status
            Assert.AreEqual<PolisherState>(PolisherState.EmergencyStop, target1.Status[0].State);
            Assert.AreEqual<PolisherState>(PolisherState.AutoWait, target1.Status[1].State);
            Assert.AreEqual<PolisherState>(PolisherState.Alarm, target1.Status[2].State);

            // HighPressure
            Assert.AreEqual<bool>(false, target1.Status[0].HighPressure);
            Assert.AreEqual<bool>(true, target1.Status[1].HighPressure);
            Assert.AreEqual<bool>(true, target1.Status[2].HighPressure);

            // IsMagazineArrived
            Assert.IsFalse(target1.IsMagazineArrived);
        }