public void ZebraZC3_ConnectToUsbPrinter_ConnectionSuccess() { using (ShimsContext.Create()) { // Arrange ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.AddressGet = @this => "SomeFunnyAddress"; ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.DiscoveryDataMapGet = @this => new Dictionary <string, string>() { { "SERIAL_NUMBER", "aaabbbb111222ccc" }, { "MFG", "Zebra Technologies" }, { "MODEL", "ZTC ZC350" } }; var conn = Substitute.For <ZebraSdk.Comm.Connection>(); var usbPrinter = Substitute.For <ZebraSdk.Printer.Discovery.DiscoveredUsbPrinter>("symbolicName1"); usbPrinter.GetConnection().Returns(conn); var zebraPrinter = Substitute.For <ZebraSdk.Card.Printer.ZebraCardPrinter>(); ZebraSdk.Card.Printer.Fakes.ShimZebraCardPrinterFactory.GetInstanceConnection = (shimConn) => { return(zebraPrinter); }; ZebraZC3 zebraZC3 = new ZebraZC3(usbPrinter); // Act var respCode = zebraZC3.Connect(); // Assert usbPrinter.Received(1).GetConnection(); conn.Received(1).Open(); respCode.Should().Be(0, because: "Sucessful response code from the printer is code=0"); } }
public void ZebraZC3_ReadandPrint() { //Zebra.Sdk.Comm.ConnectionException var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { printer.Connect(); ProductField nameOnCardField = new ProductField { Deleted = false, Printable = true, X = 500, Y = 200, Value = Encoding.UTF8.GetBytes("Veneka Test Printing"), Font = "Consolas", FontColourRGB = Color.Black.ToArgb(), FontSize = 10, PrintSide = 0 }; var printDetail = printer.PrinterDetailFactory().Populate(new ProductField[] { nameOnCardField }); printer.ReadAndPrint("", printDetail, out IDeviceMagData magData); } }
public void ZebraZC3_PrintNameOnCard() { //Zebra.Sdk.Comm.ConnectionException var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { printer.Connect(); ProductField nameOnCardField = new ProductField { Deleted = false, Printable = true, X = 500, Y = 200, Value = Encoding.UTF8.GetBytes("DANIEL JACOB"), Font = "Consolas", FontColourRGB = Color.Black.ToArgb(), FontSize = 10, PrintSide = 0 }; var printDetail = printer.PrinterDetailFactory().Populate(new ProductField[] { nameOnCardField }); printer.Print("123456789", printDetail); } }
public void ZebraZC3_GetMagEncoder_ConnectNotCalledBeforeMethodUsed() { using (ShimsContext.Create()) { // Arrange ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.AddressGet = @this => "SomeFunnyAddress"; ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.DiscoveryDataMapGet = @this => new Dictionary <string, string>() { { "SERIAL_NUMBER", "aaabbbb111222ccc" }, { "MFG", "Zebra Technologies" }, { "MODEL", "ZTC ZC350" } }; var usbPrinter = Substitute.For <ZebraSdk.Printer.Discovery.DiscoveredUsbPrinter>("symbolicName1"); var zebraZC3 = new ZebraZC3(usbPrinter); Exception receivedException = null; // Act try { var hasMagEncoder = zebraZC3.HasMagEncoder(); } catch (Exception ex) { receivedException = ex; } // Assert usbPrinter.Received(0).GetConnection(); receivedException.Should().NotBeNull(because: "The method should check that Connect was called before trying to anything"); receivedException.Message.Should().Be("Device not connected! Method may only be used after device has successful Connect()."); } }
public void ZebraZC3_ReadMagStripeEncoderInstalled_ReturnsPopulatedMagneticTrackData() { using (ShimsContext.Create()) { // Arrange var errorFactory = Substitute.For <Error.IZebraErrorFactory>(); var trackData = new ZebraSdk.Card.Containers.Fakes.ShimMagTrackData(); trackData.Track1Get = () => "Track1DataHere"; trackData.Track2Get = () => "Track2DataHere"; trackData.Track3Get = () => "Track3DataHere"; var conn = Substitute.For <ZebraSdk.Comm.Connection>(); var zebraPrinter = Substitute.For <ZebraSdk.Card.Printer.ZebraCardPrinter>(); zebraPrinter.HasMagneticEncoder().Returns(true); zebraPrinter .ReadMagData(ZebraSdk.Card.Enumerations.DataSource.Track1 | ZebraSdk.Card.Enumerations.DataSource.Track2 | ZebraSdk.Card.Enumerations.DataSource.Track3) .Returns(trackData); ZebraZC3 zebraZC3 = new ZebraZC3(conn, zebraPrinter, errorFactory); // Act var returnedTrackData = zebraZC3.ReadMagStripe(); // Assert Assert.Fail(); } }
public void ZebraZC3_ConstructorWithUsbDiscoveredPrinter_DevicePropertySet() { using (ShimsContext.Create()) { // Arrange ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.AddressGet = @this => "SomeFunnyAddress"; ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.DiscoveryDataMapGet = @this => new Dictionary <string, string>() { { "SERIAL_NUMBER", "aaabbbb111222ccc" }, { "MFG", "Zebra Technologies" }, { "MODEL", "ZTC ZC350" } }; var usbPrinter = Substitute.For <ZebraSdk.Printer.Discovery.DiscoveredPrinter>("symbolicName"); // Act ZebraZC3 zebraZC3 = new ZebraZC3(usbPrinter); // Assert var temp = usbPrinter.Received(3).DiscoveryDataMap; zebraZC3.DeviceId.Should().Be("aaabbbb111222ccc", because: "SERIAL_NUMBER in DiscoveryDataMap is used to set DeviceId property"); zebraZC3.Manufacturer.Should().Be("Zebra Technologies", because: "MFG in DiscoveryDataMap is used to set Manufacturer property"); zebraZC3.Model.Should().Be("ZTC ZC350", because: "MODEL in DiscoveryDataMap is used to set Model property"); zebraZC3.Name.Should().Be("ZTC ZC350[aaabbbb111222ccc]", because: "Name property is made from Model and DeviceId"); } }
public void ZebraZC3_CheckPrinterStatus_AlarmInfoAndErrorInfoHaveDifferentErrorsReturnFalse() { using (ShimsContext.Create()) { var errorDesc7008 = Substitute.For <IDeviceErrorDescriptor>(); errorDesc7008.Code.Returns(7008); errorDesc7008.Description.Returns("Printer door open"); errorDesc7008.HelpfulHint.Returns("Ensure the door is closed."); var errorDesc7028 = Substitute.For <IDeviceErrorDescriptor>(); errorDesc7028.Code.Returns(7028); errorDesc7028.Description.Returns("Printer thingo is open"); errorDesc7028.HelpfulHint.Returns("Ensure the thingo is closed."); var errorFactory = Substitute.For <Error.IZebraErrorFactory>(); errorFactory.GetErrorDescription(7008).Returns(errorDesc7008); errorFactory.GetErrorDescription(7028).Returns(errorDesc7028); // Arrange var alarm7008 = new ZebraSdk.Card.Containers.Fakes.ShimAlarmInfo { ValueGet = () => { return(7008); } }; var alarm7028 = new ZebraSdk.Card.Containers.Fakes.ShimAlarmInfo { ValueGet = () => { return(7028); } }; var printerStatus = new ZebraSdk.Card.Containers.Fakes.ShimPrinterStatusInfo { AlarmInfoGet = () => { return(alarm7008); }, ErrorInfoGet = () => { return(alarm7028); } }; var conn = Substitute.For <ZebraSdk.Comm.Connection>(); var zebraPrinter = Substitute.For <ZebraSdk.Card.Printer.ZebraCardPrinter>(); zebraPrinter.GetPrinterStatus().Returns(printerStatus); ZebraZC3 zebraZC3 = new ZebraZC3(conn, zebraPrinter, errorFactory); // Act string status; List <IDeviceErrorDescriptor> errorList; var boolStatus = zebraZC3.CheckPrinterStatus(out status, out errorList); // Assert zebraPrinter.Received(1).GetPrinterStatus(); errorFactory.Received(1).GetErrorDescription(7008); errorFactory.Received(1).GetErrorDescription(7028); boolStatus.Should().BeFalse(because: "Both ErrorInfo and AlarmInfo have issues. Should trigger false on either having an issue or both having an issue."); errorList.Should().HaveCount(2, because: "Two different errors received from alarm and errorinfo."); errorList[0].Should().BeEquivalentTo(errorDesc7008); errorList[1].Should().BeEquivalentTo(errorDesc7028); } }
public void ZebraZC3_Connect() { var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { printer.Connect(); } //Assert.Fail(); }
public void ZebraZC3_GetMediaInfo() { //Zebra.Sdk.Comm.ConnectionException var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { printer.Connect(); printer.GetMediaInfo(); } }
public void ZebraZC3_CheckPrinterStatus() { //Zebra.Sdk.Comm.ConnectionException var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { printer.Connect(); //printer.CheckPrinterStatus(); } }
public void ZebraZC3_DisplayJobSettings() { //Zebra.Sdk.Comm.ConnectionException var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { printer.Connect(); printer.DisplayJobSettings(); } }
public void ZebraZC3_HasMagEncoder() { var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { if (printer.Connect() == 0) { var hasMagEncoder = printer.HasMagEncoder(); } } }
public void ZebraZC3_GetMagData() { //Zebra.Sdk.Comm.ConnectionException var printers = ZebraZC3.GetPrinterList(); using (var printer = printers[0]) { printer.Connect(); if (printer.HasMagEncoder()) { var magData = printer.ReadMagStripe(); } } }
public void ZebraZC3_CheckPrinterStatus_ErrorInfoHasErrorReturnFalse() { using (ShimsContext.Create()) { // Arrange var errorDesc = Substitute.For <IDeviceErrorDescriptor>(); errorDesc.Code.Returns(7028); errorDesc.Description.Returns("Printer thingo is open"); errorDesc.HelpfulHint.Returns("Ensure the thingo is closed."); var errorFactory = Substitute.For <Error.IZebraErrorFactory>(); errorFactory.GetErrorDescription(7028).Returns(errorDesc); var alarmGood = new ZebraSdk.Card.Containers.Fakes.ShimAlarmInfo { ValueGet = () => { return(0); } }; var alarmBad = new ZebraSdk.Card.Containers.Fakes.ShimAlarmInfo { ValueGet = () => { return(7028); } }; var printerStatus = new ZebraSdk.Card.Containers.Fakes.ShimPrinterStatusInfo { AlarmInfoGet = () => { return(alarmGood); }, ErrorInfoGet = () => { return(alarmBad); } }; var conn = Substitute.For <ZebraSdk.Comm.Connection>(); var zebraPrinter = Substitute.For <ZebraSdk.Card.Printer.ZebraCardPrinter>(); zebraPrinter.GetPrinterStatus().Returns(printerStatus); ZebraZC3 zebraZC3 = new ZebraZC3(conn, zebraPrinter, errorFactory); // Act string status; List <IDeviceErrorDescriptor> errorList; var boolStatus = zebraZC3.CheckPrinterStatus(out status, out errorList); // Assert zebraPrinter.Received(1).GetPrinterStatus(); errorFactory.Received(1).GetErrorDescription(7028); boolStatus.Should().BeFalse(because: "ErrorInfo is returning a problem even though AlarmInfo doesn't. Should trigger false on either having an issue or both having an issue."); errorList.Should().HaveCount(1, because: "Only one item should be in the error list."); errorList[0].Should().BeEquivalentTo(errorDesc); } }
public void ZebraZC3_ConstructorWithUsbDiscoveredPrinter_ZebraZC3ObjectCreated() { using (ShimsContext.Create()) { // Arrange ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.AddressGet = @this => "Address"; var usbPrinter = Substitute.For <ZebraSdk.Printer.Discovery.DiscoveredPrinter>("symbolicName1"); // Act ZebraZC3 zebraZC3 = new ZebraZC3(usbPrinter); // Assert zebraZC3.Should().NotBeNull(because: "Object should have been created."); zebraZC3.Should().BeOfType(typeof(ZebraZC3)); } }
public void ZebraZC3_GetPrinterList_ReturnsEmptyDeviceList() { using (ShimsContext.Create()) { // Arrange ZebraSdk.Printer.Discovery.Fakes.ShimUsbDiscoverer.GetZebraUsbPrintersDiscoveredPrinterFilter = (filter) => { return(new List <ZebraSdk.Printer.Discovery.DiscoveredUsbPrinter>()); }; // Act var printers = ZebraZC3.GetPrinterList(); // Assert printers.Should().BeEmpty(because: "No printers connected to machine and device list returned must be empty"); } }
public void ZebraZC3_ConnectToUsbPrinter_ZebraCardPrinterFactoryGetInstanceException() { using (ShimsContext.Create()) { // Arrange ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.AddressGet = @this => "SomeFunnyAddress"; ZebraSdk.Printer.Discovery.Fakes.ShimDiscoveredPrinter.AllInstances.DiscoveryDataMapGet = @this => new Dictionary <string, string>() { { "SERIAL_NUMBER", "aaabbbb111222ccc" }, { "MFG", "Zebra Technologies" }, { "MODEL", "ZTC ZC350" } }; var conn = Substitute.For <ZebraSdk.Comm.Connection>(); var usbPrinter = Substitute.For <ZebraSdk.Printer.Discovery.DiscoveredUsbPrinter>("symbolicName1"); usbPrinter.GetConnection().Returns(conn); var zebraPrinter = Substitute.For <ZebraSdk.Card.Printer.ZebraCardPrinter>(); ZebraSdk.Card.Printer.Fakes.ShimZebraCardPrinterFactory.GetInstanceConnection = (shimConn) => { throw new Exception(); }; ZebraZC3 zebraZC3 = new ZebraZC3(usbPrinter); Exception expectedEx = null; short? respCode = null; // Act try { respCode = zebraZC3.Connect(); } catch (Exception ex) { expectedEx = ex; } // Assert usbPrinter.Received(1).GetConnection(); conn.Received(1).Open(); respCode.Should().BeNull(because: "ZebraCardPrinterFactory.GetInstance threw exception which must be cause by calling code. No response code should have been returned"); expectedEx.Should().NotBeNull(because: "ZebraCardPrinterFactory.GetInstance threw exception and should not have been swallowed"); } }
public void ZebraZC3_CheckPrinterStatus_StatusOkayReturnTrue() { using (ShimsContext.Create()) { // Arrange var errorDesc = Substitute.For <IDeviceErrorDescriptor>(); errorDesc.Code.Returns(0); errorDesc.Description.Returns("The description"); errorDesc.HelpfulHint.Returns("A helpful hint for the problem"); var errorFactory = Substitute.For <Error.IZebraErrorFactory>(); errorFactory.GetErrorDescription(0).Returns(errorDesc); var alarm = new ZebraSdk.Card.Containers.Fakes.ShimAlarmInfo { ValueGet = () => { return(0); } }; var printerStatus = new ZebraSdk.Card.Containers.Fakes.ShimPrinterStatusInfo { AlarmInfoGet = () => { return(alarm); }, ErrorInfoGet = () => { return(alarm); } }; var conn = Substitute.For <ZebraSdk.Comm.Connection>(); var zebraPrinter = Substitute.For <ZebraSdk.Card.Printer.ZebraCardPrinter>(); zebraPrinter.GetPrinterStatus().Returns(printerStatus); ZebraZC3 zebraZC3 = new ZebraZC3(conn, zebraPrinter, errorFactory); // Act string status; List <IDeviceErrorDescriptor> errorList; var boolStatus = zebraZC3.CheckPrinterStatus(out status, out errorList); // Assert zebraPrinter.Received(1).GetPrinterStatus(); errorFactory.Received(1).GetErrorDescription(0); boolStatus.Should().BeTrue(because: "All status checks have passed successfully"); errorList.Should().HaveCount(1, because: "Only one item should be in the error list."); errorList[0].Should().BeEquivalentTo(errorDesc); } }
public void ZebraZC3_GetPrinterList_ReturnsSinglePrinterInDeviceList() { using (ShimsContext.Create()) { // Arrange ZebraSdk.Printer.Discovery.Fakes.ShimUsbDiscoverer.GetZebraUsbPrintersDiscoveredPrinterFilter = (filter) => { return(new List <ZebraSdk.Printer.Discovery.DiscoveredUsbPrinter>() { Substitute.For <ZebraSdk.Printer.Discovery.DiscoveredUsbPrinter>("symbolicName") }); }; // Act var printers = ZebraZC3.GetPrinterList(); // Assert printers.Should().HaveCount(1, because: "Single usb printer was returned from UsbDiscoverer and should have returned one device"); } }
public void ZebraZC3_ConstructorWithNullValue_ThrowsArgumentNullException() { // Arrange Exception exception = null; // Act try { ZebraZC3 zebraZC3 = new ZebraZC3(null); } catch (Exception ex) { exception = ex; } // Assert exception.Should().NotBeNull(because: "We should not be able to create a ZebraZC3 object with a null discovered device."); exception.Should().BeOfType(typeof(ArgumentNullException), because: "The check for null value mus return an exception of ArgumentNullException"); ((ArgumentNullException)exception).ParamName.Should().Be("discoveredPrinter", because: "discoveredPrinter argument is being checked for a null value."); }
public void ZebraZC3_GetMagEncoder_ReturnsFalse() { using (ShimsContext.Create()) { // Arrange var conn = Substitute.For <ZebraSdk.Comm.Connection>(); var errorFactory = Substitute.For <Error.IZebraErrorFactory>(); var zebraPrinter = Substitute.For <ZebraSdk.Card.Printer.ZebraCardPrinter>(); zebraPrinter.SetConnection(conn); zebraPrinter.HasMagneticEncoder().Returns(false); ZebraZC3 zebraZC3 = new ZebraZC3(conn, zebraPrinter, errorFactory); // Act var hasMagEncoder = zebraZC3.HasMagEncoder(); // Assert zebraPrinter.Received(1).HasMagneticEncoder(); hasMagEncoder.Should().BeFalse(because: "ZebraCardPrinter does not have a magnetic encoder installed, which returns false when checked. Therefor our method must also send back false."); } }
public void ZebraZC3_GetPrinterList() { var printers = ZebraZC3.GetPrinterList(); //Assert.Fail(); }