Exemplo n.º 1
0
        public void ModelInformation()
        {
            var stream = new TestStream();

            using var device = new CyberCard(stream);

            // survive without data
            Assert.Null(device.GetDeviceModel());
            Assert.Null(device.GetDeviceFirmware());
            Assert.Null(device.GetDeviceSerial());
            Assert.Null(device.GetDeviceManufacturer());
            Assert.Equal("P4\rP4\rP4\rP4\r", Encoding.ASCII.GetString(stream.ToWrittenArray()));  // check we tried for each

            // now we have data
            stream.SetupRead(Encoding.ASCII.GetBytes("#OR700LCDRM1U,BFE7103_8S1,000000000000,CyberPower\r"));
            Assert.Equal("OR700LCDRM1U", device.GetDeviceModel());
            Assert.Equal("BFE7103_8S1", device.GetDeviceFirmware());
            Assert.Equal("", device.GetDeviceSerial());                                              // ignore all 0's serial
            Assert.Equal("CyberPower", device.GetDeviceManufacturer());
            Assert.Equal("P4\rP4\rP4\rP4\rP4\r", Encoding.ASCII.GetString(stream.ToWrittenArray())); // check we tried only once more

            // subsequent read goes from cache
            Assert.Equal("OR700LCDRM1U", device.GetDeviceModel());
            Assert.Equal("BFE7103_8S1", device.GetDeviceFirmware());
            Assert.Equal("", device.GetDeviceSerial());
            Assert.Equal("CyberPower", device.GetDeviceManufacturer());
            Assert.Equal("P4\rP4\rP4\rP4\rP4\r", Encoding.ASCII.GetString(stream.ToWrittenArray()));  // no new reads
        }