153 lines
4.7 KiB
Dart
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);
|
|
});
|
|
}
|