LCOV - code coverage report
Current view: top level - lib/src/test_helpers - mock_canvas.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 21 30 70.0 %
Date: 2021-08-10 15:50:53 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:typed_data';
       2             : import 'dart:ui';
       3             : 
       4             : import 'package:test/fake.dart';
       5             : 
       6             : class MockCanvas extends Fake implements Canvas {
       7             :   int saveCount = 1;
       8             :   List<String> methodCalls = [];
       9             : 
      10           2 :   @override
      11             :   void translate(double dx, double dy) {
      12           2 :     final ddx = _normalize(dx);
      13           2 :     final ddy = _normalize(dy);
      14           6 :     methodCalls.add('translate($ddx, $ddy)');
      15             :   }
      16             : 
      17           0 :   @override
      18             :   void scale(double sx, [double? sy]) {
      19           0 :     final ssx = _normalize(sx);
      20             :     if (sy == null) {
      21           0 :       methodCalls.add('scale($ssx)');
      22             :     } else {
      23           0 :       final ssy = _normalize(sy);
      24           0 :       methodCalls.add('scale($ssx, $ssy)');
      25             :     }
      26             :   }
      27             : 
      28           2 :   double _normalize(double d) {
      29             :     // this prevents it from printing -0 which would be harder to assert in tests
      30           2 :     return _isNegativeZero(d) ? 0.0 : d;
      31             :   }
      32             : 
      33           2 :   bool _isNegativeZero(double d) {
      34           6 :     return d.abs() == 0.0 && d.isNegative;
      35             :   }
      36             : 
      37           0 :   @override
      38             :   void rotate(double radians) {
      39           0 :     methodCalls.add('rotate($radians)');
      40             :   }
      41             : 
      42           2 :   @override
      43             :   void drawRect(Rect rect, Paint paint) {
      44           4 :     methodCalls.add(
      45          10 :       'drawRect(${rect.left}, ${rect.top}, ${rect.width}, ${rect.height})',
      46             :     );
      47             :   }
      48             : 
      49           1 :   @override
      50             :   void clipRect(
      51             :     Rect rect, {
      52             :     ClipOp clipOp = ClipOp.intersect,
      53             :     bool doAntiAlias = true,
      54             :   }) {
      55           2 :     methodCalls.add(
      56           5 :       'clipRect(${rect.left}, ${rect.top}, ${rect.width}, ${rect.height})',
      57             :     );
      58             :   }
      59             : 
      60           2 :   @override
      61             :   void transform(Float64List matrix4) {
      62           8 :     final asString = matrix4.map<String>((e) => e.toString()).join(', ');
      63           6 :     methodCalls.add('transform($asString)');
      64             :   }
      65             : 
      66           0 :   @override
      67             :   int getSaveCount() {
      68           0 :     return saveCount;
      69             :   }
      70             : 
      71           2 :   @override
      72             :   void restore() {
      73           4 :     saveCount--;
      74             :   }
      75             : 
      76           2 :   @override
      77             :   void save() {
      78           4 :     saveCount++;
      79             :   }
      80             : }

Generated by: LCOV version 1.15