265 lines
8.2 KiB
Dart
265 lines
8.2 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:printer/printer.dart';
|
|
import 'package:printer/printer_platform_interface.dart';
|
|
import 'package:printer/printer_method_channel.dart';
|
|
import 'package:printer/enums/multi_byte_encoding.dart';
|
|
import 'package:printer/enums/printer_alignment.dart';
|
|
import 'package:printer/enums/serial_flow_control.dart';
|
|
import 'package:printer/enums/serial_parity.dart';
|
|
import 'package:printer/enums/serial_stop_bits.dart';
|
|
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
|
|
|
|
class MockPrinterPlatform
|
|
with MockPlatformInterfaceMixin
|
|
implements PrinterPlatform {
|
|
@override
|
|
Future<String?> getPlatformVersion() => Future.value('42');
|
|
|
|
@override
|
|
Future<int> openComPort({
|
|
required String portName,
|
|
required int baudRate,
|
|
int dataBits = 8,
|
|
SerialParity parity = SerialParity.none,
|
|
SerialStopBits stopBits = SerialStopBits.one,
|
|
SerialFlowControl flowControl = SerialFlowControl.none,
|
|
bool autoReplyMode = true,
|
|
}) => Future.value(1);
|
|
|
|
@override
|
|
Future<int> openUsbPort({
|
|
required String portName,
|
|
bool autoReplyMode = true,
|
|
}) => Future.value(2);
|
|
|
|
@override
|
|
Future<bool> closePort(int handle) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> isPortOpened(int handle) => Future.value(true);
|
|
|
|
@override
|
|
Future<List<String>> enumComPorts() => Future.value(['/dev/ttyS0']);
|
|
|
|
@override
|
|
Future<List<String>> enumUsbPorts() => Future.value(['USB_Printer_0']);
|
|
|
|
@override
|
|
Future<bool> setMultiByteMode(int handle) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> setMultiByteEncoding(int handle, MultiByteEncoding encoding) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> printText(int handle, String text) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> setAlignment(int handle, PrinterAlignment alignment) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> setTextScale(int handle, {required int widthScale, required int heightScale}) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> setTextBold(int handle, bool bold) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> setTextUnderline(int handle, int underline) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> feedLine(int handle, int numLines) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> feedDot(int handle, int numDots) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> halfCutPaper(int handle) => Future.value(true);
|
|
|
|
@override
|
|
Future<bool> fullCutPaper(int handle) => Future.value(true);
|
|
}
|
|
|
|
void main() {
|
|
final PrinterPlatform initialPlatform = PrinterPlatform.instance;
|
|
|
|
test('$MethodChannelPrinter is the default instance', () {
|
|
expect(initialPlatform, isInstanceOf<MethodChannelPrinter>());
|
|
});
|
|
|
|
test('getPlatformVersion', () async {
|
|
Printer printerPlugin = Printer();
|
|
MockPrinterPlatform fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
expect(await printerPlugin.getPlatformVersion(), '42');
|
|
});
|
|
|
|
test('openComPort delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final handle = await printer.openComPort(
|
|
portName: '/dev/ttyS0',
|
|
baudRate: 115200,
|
|
);
|
|
|
|
expect(handle, 1);
|
|
});
|
|
|
|
test('openUsbPort delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final handle = await printer.openUsbPort(portName: 'USB_Printer_0');
|
|
|
|
expect(handle, 2);
|
|
});
|
|
|
|
test('closePort delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final result = await printer.closePort(1);
|
|
|
|
expect(result, true);
|
|
});
|
|
|
|
test('isPortOpened delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final result = await printer.isPortOpened(1);
|
|
|
|
expect(result, true);
|
|
});
|
|
|
|
test('enumComPorts delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final ports = await printer.enumComPorts();
|
|
|
|
expect(ports, ['/dev/ttyS0']);
|
|
});
|
|
|
|
test('enumUsbPorts delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final ports = await printer.enumUsbPorts();
|
|
|
|
expect(ports, ['USB_Printer_0']);
|
|
});
|
|
|
|
test('openComPortWithHandle returns valid PrinterPortHandle', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final portHandle = await printer.openComPortWithHandle(
|
|
portName: '/dev/ttyS0',
|
|
baudRate: 115200,
|
|
);
|
|
|
|
expect(portHandle.handle, 1);
|
|
expect(portHandle.isValid, true);
|
|
await portHandle.close();
|
|
expect(portHandle.isValid, false);
|
|
});
|
|
|
|
test('openUsbPortWithHandle returns valid PrinterPortHandle', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
|
|
final portHandle = await printer.openUsbPortWithHandle(
|
|
portName: 'USB_Printer_0',
|
|
);
|
|
|
|
expect(portHandle.handle, 2);
|
|
expect(portHandle.isValid, true);
|
|
});
|
|
|
|
test('setMultiByteMode delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.setMultiByteMode(1), true);
|
|
});
|
|
|
|
test('setMultiByteEncoding delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.setMultiByteEncoding(1, MultiByteEncoding.utf8), true);
|
|
});
|
|
|
|
test('printText delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.printText(1, 'Hello 中文'), true);
|
|
});
|
|
|
|
test('setAlignment delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.setAlignment(1, PrinterAlignment.center), true);
|
|
});
|
|
|
|
test('setTextScale delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.setTextScale(1, widthScale: 2, heightScale: 2), true);
|
|
});
|
|
|
|
test('setTextBold delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.setTextBold(1, true), true);
|
|
});
|
|
|
|
test('setTextUnderline delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.setTextUnderline(1, 1), true);
|
|
});
|
|
|
|
test('feedLine delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.feedLine(1, 5), true);
|
|
});
|
|
|
|
test('feedDot delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.feedDot(1, 100), true);
|
|
});
|
|
|
|
test('halfCutPaper delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.halfCutPaper(1), true);
|
|
});
|
|
|
|
test('fullCutPaper delegates to platform interface', () async {
|
|
final printer = Printer();
|
|
final fakePlatform = MockPrinterPlatform();
|
|
PrinterPlatform.instance = fakePlatform;
|
|
expect(await printer.fullCutPaper(1), true);
|
|
});
|
|
}
|