LCOV - code coverage report
Current view: top level - test-doubles/services/stubs - services_with_mocked_plugins.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 31 0.0 %
Date: 2022-03-03 12:15:14 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:async';
       2             : 
       3             : import 'package:firebase_auth/firebase_auth.dart';
       4             : import 'package:mockito/mockito.dart';
       5             : import 'package:redfire/services.dart';
       6             : import 'package:redfire/types.dart';
       7             : 
       8             : import '../../auth/data/user_example.dart';
       9             : import '../../auth/mocks/auth_test_doubles.mocks.dart';
      10             : import '../../firebase/mocks/firebase_test_doubles.mocks.dart';
      11             : import '../../platform/mocks/platform_test_doubles.mocks.dart';
      12             : 
      13             : class ServicesHarness {
      14             :   // auth
      15             :   late final AuthService _authService;
      16             :   late final MockFirebaseAuth _mockFirebaseAuth;
      17             :   late final MockGoogleSignIn _mockGoogleSignIn;
      18             :   late final MockSignInWithAppleWrapper _mockSignInWithAppleWrapper;
      19             :   // database
      20             :   late final DatabaseService _databaseService;
      21             :   late final MockFirebaseFirestore _mockFirebaseFirestore;
      22             :   // platform
      23             :   late final PlatformService _platformService;
      24             :   late final MockPlatformWrapper _mockPlatformWrapper;
      25             :   late final UrlLauncherWrapper _mockUrlLauncherWrapper;
      26             : 
      27           0 :   ServicesHarness() {
      28             :     // Create a real AuthService with mock plugins.
      29           0 :     _mockFirebaseAuth = MockFirebaseAuth();
      30           0 :     _mockGoogleSignIn = MockGoogleSignIn();
      31           0 :     _mockSignInWithAppleWrapper = MockSignInWithAppleWrapper();
      32           0 :     _authService = AuthService(
      33           0 :         firebase: _mockFirebaseAuth,
      34           0 :         google: _mockGoogleSignIn,
      35           0 :         apple: _mockSignInWithAppleWrapper);
      36             : 
      37             :     // Create a real DatabaseService with mock plugin.
      38           0 :     _mockFirebaseFirestore = MockFirebaseFirestore();
      39           0 :     _databaseService = DatabaseService(database: _mockFirebaseFirestore);
      40             : 
      41             :     // Create a real PlatformService with mock plugins.
      42           0 :     _mockPlatformWrapper = MockPlatformWrapper();
      43           0 :     _mockUrlLauncherWrapper = UrlLauncherWrapper();
      44           0 :     _platformService = PlatformService(
      45           0 :         platformWrapper: _mockPlatformWrapper,
      46           0 :         urlLauncherWrapper: _mockUrlLauncherWrapper);
      47             :   }
      48             : 
      49             :   // auth
      50           0 :   AuthService get auth => _authService;
      51           0 :   MockFirebaseAuth get mockFirebaseAuth => _mockFirebaseAuth;
      52           0 :   MockGoogleSignIn get mockGoogleSignIn => _mockGoogleSignIn;
      53           0 :   MockSignInWithAppleWrapper get mockSignInWithAppleWrapper =>
      54           0 :       _mockSignInWithAppleWrapper;
      55             :   // database
      56           0 :   DatabaseService get database => _databaseService;
      57           0 :   MockFirebaseFirestore get mockFirebaseFirestore => _mockFirebaseFirestore;
      58             :   // platform
      59           0 :   PlatformService get platform => _platformService;
      60           0 :   MockPlatformWrapper get mockPlatformWrapper => _mockPlatformWrapper;
      61           0 :   UrlLauncherWrapper get mockUrlLauncherWrapper => _mockUrlLauncherWrapper;
      62             : }
      63             : 
      64             : class ServicesHarnessForAuth extends ServicesHarness {
      65             :   final _userStreamController = StreamController<User>();
      66             : 
      67           0 :   ServicesHarnessForAuth() {
      68             :     // Setup the firebase auth mock to allow emitting a user later in the test
      69           0 :     when(mockFirebaseAuth.authStateChanges())
      70           0 :         .thenAnswer((_) => _userStreamController.stream);
      71             : 
      72           0 :     when(mockPlatformWrapper.isMacOS).thenReturn(true);
      73             :   }
      74             : 
      75           0 :   void emitStubbedUser() {
      76           0 :     _userStreamController.add(UserExample.stubBasicMock());
      77             :   }
      78             : }

Generated by: LCOV version 1.13