public void GivenConnectedPrinterControllerService_AndPrevCommandWaitingAck_AndCommandStackCleared_AndString_AndEncoding_WhenWrite_ThenCommandSent() { // Arrange var printer = new PrinterConfigurationModel(); var mockPrinterPacketParser = new Mock <IPrinterPacketParser>(); var testableSerialPortAdapter = new TestableSerialPortAdapter(); var sut = new MarlinPrinterControllerService( testableSerialPortAdapter, mockPrinterPacketParser.Object); var expectedDataString = "Hello World!"; sut.Connect(printer); sut.Write( expectedDataString, Encoding.ASCII); sut.ClearCommandStack(); // Act var result = sut.Write( "This will get sent as the command stack has been cleared!", Encoding.ASCII); // Assert Assert.NotNull(result); Assert.Equal(2, testableSerialPortAdapter.WrittenBinaryData.Count); }
public void GivenConnectedPrinterControllerService_AndPrevCommandWaitingAck_AndByteArray_AndOffset_AndCount_WhenWrite_ThenNullReturned() { // Arrange var mockPrinterPacketParser = new Mock <IPrinterPacketParser>(); var testableSerialPortAdapter = new TestableSerialPortAdapter(); var sut = new MarlinPrinterControllerService( testableSerialPortAdapter, mockPrinterPacketParser.Object); var expectedDataString = "This won't get sent!"; var expectedDataBytes = Encoding.ASCII.GetBytes(expectedDataString); var expectedOffset = 1; var expectedCount = 2; sut.Write( Encoding.ASCII.GetBytes("Hello World!"), expectedOffset, expectedCount); // Act var result = sut.Write( expectedDataBytes, expectedOffset, expectedCount); // Assert Assert.Null(result); }
public void GivenConnectedPrinterControllerService_AndString_AndEncoding_WhenWrite_ThenByteArrayWrittenToPrinter_AndPrinterCommandReturned() { // Arrange var printer = new PrinterConfigurationModel(); var mockPrinterPacketParser = new Mock <IPrinterPacketParser>(); var testableSerialPortAdapter = new TestableSerialPortAdapter(); var sut = new MarlinPrinterControllerService( testableSerialPortAdapter, mockPrinterPacketParser.Object); var expectedDataString = "Hello World!"; var expectedDataBytes = Encoding.ASCII.GetBytes(expectedDataString); var expectedOffset = 0; var expectedCount = expectedDataString.Length; sut.Connect(printer); // Act var result = sut.Write( expectedDataString, Encoding.ASCII); // Assert Assert.Equal(expectedDataBytes, result.Data); Assert.Equal(expectedOffset, result.Offset); Assert.Equal(expectedCount, result.Count); Assert.False(result.Acknowledged); Assert.Single(testableSerialPortAdapter.WrittenBinaryData); Assert.Equal(expectedDataBytes, testableSerialPortAdapter.WrittenBinaryData[0].Data); Assert.Equal(expectedOffset, testableSerialPortAdapter.WrittenBinaryData[0].Offset); Assert.Equal(expectedCount, testableSerialPortAdapter.WrittenBinaryData[0].Count); }
public void GivenConnectedPrinterControllerService_AndCommandAcked_AndString_AndEncoding_WhenWrite_ThenCommandSent() { // Arrange var printer = new PrinterConfigurationModel(); var mockPrinterPacketParser = new Mock <IPrinterPacketParser>(); var testableSerialPortAdapter = new TestableSerialPortAdapter(); var sut = new MarlinPrinterControllerService( testableSerialPortAdapter, mockPrinterPacketParser.Object); var expectedDataString = "Hello World!"; var expectedDataBytes = Encoding.ASCII.GetBytes(expectedDataString); var expectedCount = expectedDataString.Length; sut.Connect(printer); sut.Write( expectedDataString, Encoding.ASCII); mockPrinterPacketParser.Setup(x => x.ReceiveData( It.Is <string>(x => x == "ok\n"))) .Callback(() => { mockPrinterPacketParser.Raise( x => x.PacketComplete += null, new PrinterPacketParserPacketCompleteEventArgs() { Packet = new PrinterPacket() { IsAck = true } }); }); sut.SerialPortAdapterRef.DataReceivedCallback( sut.SerialPortAdapterRef, "ok\n"); // Act var result = sut.Write( "This will get sent as the previous command was acknowledged!", Encoding.ASCII); // Assert Assert.NotNull(result); Assert.Equal(2, testableSerialPortAdapter.WrittenBinaryData.Count); }
public void GivenConnectedPrinterControllerService_WhenReceivedData_ThenEventRaisedWithReceivedData() { // Arrange var printer = new PrinterConfigurationModel(); var testableSerialPortAdapter = new TestableSerialPortAdapter(); var mockPrinterPacketParser = new Mock <IPrinterPacketParser>(); var sut = new MarlinPrinterControllerService( testableSerialPortAdapter, mockPrinterPacketParser.Object); var receivedData = string.Empty; var expecetdData = "Hello World!"; sut.Connect(printer); mockPrinterPacketParser.Setup(x => x.ReceiveData( It.IsAny <string>())).Callback((string data) => { var eventArgs = new PrinterPacketParserPacketCompleteEventArgs() { Packet = new PrinterPacket() { RawData = data } }; mockPrinterPacketParser.Raise( x => x.PacketComplete += null, eventArgs); }); // Act sut.ReceivedData += new EventHandler <PrinterControllerReceivedDataEventArgs>(delegate(object s, PrinterControllerReceivedDataEventArgs ev) { receivedData = ev.Packet.RawData; }); testableSerialPortAdapter.FakeReceiveData( testableSerialPortAdapter.SerialPortAdapterRef, expecetdData); // Assert Assert.Equal(expecetdData, receivedData); }
public void GivenConnectedPrinterControllerService_AndPrevCommandWaitingAck_AndString_AndEncoding_WhenWrite_ThenNullReturned() { // Arrange var printer = new PrinterConfigurationModel(); var mockPrinterPacketParser = new Mock <IPrinterPacketParser>(); var testableSerialPortAdapter = new TestableSerialPortAdapter(); var sut = new MarlinPrinterControllerService( testableSerialPortAdapter, mockPrinterPacketParser.Object); var expectedDataString = "Hello World!"; sut.Connect(printer); sut.Write( expectedDataString, Encoding.ASCII); // Act var result = sut.Write( "This won't get sent!", Encoding.ASCII); // Assert Assert.Null(result); }