62 lines
2.3 KiB
Dart
62 lines
2.3 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'package:pj_supermarket_cloud/common/models/plugs/face_camera_models.dart';
|
|
import 'package:pj_supermarket_cloud/common/models/plugs/face_recognition_session_models.dart';
|
|
|
|
/// 核对原生相机目录、自动语义和旧会话快照的向后兼容性。
|
|
void main() {
|
|
test('配置JSON往返保留人工编号、空目录和毫秒刷新时间', () {
|
|
const value = FaceCameraConfiguration(
|
|
primaryCameraId: 1,
|
|
refreshedAt: 1792454400123,
|
|
cameras: [
|
|
FaceCameraDevice(cameraId: 0, facing: 0, orientation: 90),
|
|
FaceCameraDevice(cameraId: 1, facing: 1, orientation: 270),
|
|
],
|
|
);
|
|
final restored = FaceCameraConfiguration.fromJson(value.toJson());
|
|
expect(restored.primaryCameraId, 1);
|
|
expect(restored.refreshedAt, value.refreshedAt);
|
|
expect(restored.cameras[1].orientation, 270);
|
|
expect(restored.primaryMissing, isFalse);
|
|
expect(restored.cameras[1].description, '系统前置 · 270°');
|
|
final missing = FaceCameraConfiguration.fromJson({
|
|
'cameras': <dynamic>[],
|
|
'primaryCameraId': 1,
|
|
'refreshedAt': value.refreshedAt,
|
|
});
|
|
expect(missing.primaryMissing, isTrue);
|
|
expect(missing.primaryCameraId, 1);
|
|
expect(FaceCameraConfiguration.fromJson({}).primaryCameraId, isNull);
|
|
});
|
|
|
|
test('自动候选仍返回实际摄像头及与识别展示一致的方向参数', () {
|
|
final value = FaceCameraSelectionPreview.fromJson({
|
|
'previewSessionId': 'preview-1',
|
|
'textureId': 7,
|
|
'cameraId': 1,
|
|
'width': 1280,
|
|
'height': 720,
|
|
'rotation': 270,
|
|
'mirror': true,
|
|
});
|
|
expect(value.texture.cameraId, 1);
|
|
expect(value.texture.rotation, 270);
|
|
expect(value.texture.mirror, isTrue);
|
|
expect(value.toJson()['previewSessionId'], 'preview-1');
|
|
});
|
|
|
|
test('旧原生事件缺少摄像头扩展字段时仍能解析', () {
|
|
final legacy = FaceRecognitionSessionEvent.fromMap({});
|
|
expect(legacy.cameraId, isNull);
|
|
expect(legacy.cameraWarning, isEmpty);
|
|
expect(legacy.cameraPreviewSessionId, isNull);
|
|
final fallback = FaceRecognitionSessionEvent.fromMap({
|
|
'cameraId': 0,
|
|
'cameraWarning': '主摄 1 已失联,临时使用默认摄像头 0',
|
|
});
|
|
expect(fallback.cameraId, 0);
|
|
expect(fallback.cameraWarning, contains('失联'));
|
|
});
|
|
}
|