Files
fl_chart/test/utils/canvas_wrapper_test.dart
zypherift c7e3f36b06
Some checks failed
Code Coverage / upload (push) Has been cancelled
Gh-Pages / build (push) Has been cancelled
Code Verification / verify (push) Has been cancelled
1.0.0
2025-08-09 18:17:34 +02:00

153 lines
4.7 KiB
Dart

import 'dart:ui';
import 'package:fl_chart/src/chart/base/axis_chart/axis_chart_data.dart';
import 'package:fl_chart/src/utils/canvas_wrapper.dart';
import 'package:fl_chart/src/utils/utils.dart';
import 'package:flutter/painting.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import '../chart/data_pool.dart';
import 'canvas_wrapper_test.mocks.dart';
@GenerateMocks([Canvas, FlDotPainter, Utils])
void main() {
final mockCanvas = MockCanvas();
final canvasWrapper = CanvasWrapper(mockCanvas, MockData.size1);
test('test drawRRect', () {
canvasWrapper.drawRRect(MockData.rRect1, MockData.paint1);
verify(mockCanvas.drawRRect(MockData.rRect1, MockData.paint1)).called(1);
});
test('test save', () {
canvasWrapper.save();
verify(mockCanvas.save()).called(1);
});
test('test restore', () {
canvasWrapper.restore();
verify(mockCanvas.restore()).called(1);
});
test('test clipRect', () {
canvasWrapper.clipRect(MockData.rect1);
verify(mockCanvas.clipRect(MockData.rect1)).called(1);
});
test('test translate', () {
canvasWrapper.translate(11, 232);
verify(mockCanvas.translate(11, 232)).called(1);
});
test('test rotate', () {
canvasWrapper.rotate(12);
verify(mockCanvas.rotate(12)).called(1);
});
test('test drawPath', () {
canvasWrapper.drawPath(MockData.path1, MockData.paint1);
verify(mockCanvas.drawPath(MockData.path1, MockData.paint1)).called(1);
});
test('test saveLayer', () {
canvasWrapper.saveLayer(MockData.rect1, MockData.paint1);
verify(mockCanvas.saveLayer(MockData.rect1, MockData.paint1)).called(1);
});
test('test drawPicture', () {
canvasWrapper.drawPicture(MockData.picture1());
verify(mockCanvas.drawPicture(MockData.picture1())).called(1);
});
test('test clipPath', () {
canvasWrapper.clipPath(MockData.path1);
verify(mockCanvas.clipPath(MockData.path1)).called(1);
});
test('test drawRect', () {
canvasWrapper.drawRect(MockData.rect1, MockData.paint1);
verify(mockCanvas.drawRect(MockData.rect1, MockData.paint1)).called(1);
});
test('test drawLine', () {
canvasWrapper.drawLine(MockData.offset1, MockData.offset2, MockData.paint1);
verify(
mockCanvas.drawLine(
MockData.offset1,
MockData.offset2,
MockData.paint1,
),
).called(1);
});
test('test drawCircle', () {
canvasWrapper.drawCircle(MockData.offset1, 12, MockData.paint1);
verify(mockCanvas.drawCircle(MockData.offset1, 12, MockData.paint1))
.called(1);
});
test('test drawArc', () {
canvasWrapper.drawArc(MockData.rect1, 12, 22, false, MockData.paint1);
verify(mockCanvas.drawArc(MockData.rect1, 12, 22, false, MockData.paint1))
.called(1);
});
test('test drawDot', () {
final painter = MockFlDotPainter();
canvasWrapper.drawDot(painter, MockData.lineBarSpot1, MockData.offset1);
verify(painter.draw(mockCanvas, MockData.lineBarSpot1, MockData.offset1))
.called(1);
});
test('test drawRotated', () {
final utilsMainInstance = Utils();
final mockUtils = MockUtils();
when(mockUtils.radians(any)).thenAnswer((realInvocation) => 12);
Utils.changeInstance(mockUtils);
var calledCallback = false;
void callback() {
calledCallback = true;
}
canvasWrapper.drawRotated(
size: const Size(240, 240),
rotationOffset: MockData.offset1,
drawOffset: MockData.offset2,
angle: 12,
drawCallback: callback,
);
verify(mockCanvas.save()).called(1);
verify(mockCanvas.translate(123, 123)).called(1);
verify(mockCanvas.rotate(12)).called(1);
verify(mockCanvas.translate(-122, -122)).called(1);
expect(calledCallback, true);
verify(mockCanvas.restore()).called(1);
Utils.changeInstance(utilsMainInstance);
});
test('test drawText', () {
final tp = MockData.textPainter2;
canvasWrapper.drawText(tp, MockData.offset1);
verify(tp.paint(mockCanvas, MockData.offset1)).called(1);
});
test('test drawVerticalText', () {
final tp = MockData.textPainter2;
final mockUtils = MockUtils();
when(mockUtils.radians(any)).thenAnswer((realInvocation) => 90);
Utils.changeInstance(mockUtils);
canvasWrapper.drawVerticalText(tp, MockData.offset1);
verify(mockCanvas.save()).called(1);
verify(mockCanvas.translate(MockData.offset1.dx, MockData.offset1.dy))
.called(1);
verify(mockCanvas.rotate(90)).called(1);
verify(mockCanvas.translate(-MockData.offset1.dx, -MockData.offset1.dy))
.called(1);
verify(tp.paint(mockCanvas, MockData.offset1)).called(1);
verify(mockCanvas.restore()).called(1);
});
}