LCOV - code coverage report
Current view: top level - src/injectors/user_app - user_app_context.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 30 42 71.4 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/material.dart';
       2             : import 'package:pal/src/database/hive_client.dart';
       3             : import 'package:pal/src/database/repository/client/helper_repository.dart';
       4             : import 'package:pal/src/database/repository/client/page_user_visit_repository.dart';
       5             : import 'package:pal/src/database/repository/client/schema_repository.dart';
       6             : import 'package:pal/src/database/repository/in_app_user_repository.dart';
       7             : import 'package:pal/src/database/repository/page_repository.dart';
       8             : import 'package:pal/src/database/repository/version_repository.dart';
       9             : import 'package:pal/src/services/http_client/base_client.dart';
      10             : 
      11             : 
      12             : class UserAppContext {
      13             : 
      14             :   static UserAppContext _instance;
      15             : 
      16           2 :   static init({@required url, @required String token}) {
      17             :     if(_instance == null) {
      18           2 :       _instance = HttpUserAppContext.create(url: url, token: token);
      19             :     }
      20             :   }
      21             : 
      22           0 :   @visibleForTesting
      23             :   static create(UserAppContext userAppContext) {
      24             :     _instance = userAppContext;
      25             :   }
      26             : 
      27           2 :   static UserAppContext get instance {
      28             :     if(_instance == null) {
      29             :       throw "init needs to be called";
      30             :     }
      31             :     return _instance;
      32             :   }
      33             : 
      34           0 :   PageRepository get pageRepository => throw "not implemented";
      35             : 
      36           0 :   ClientHelperRepository get helperRepository => throw "not implemented";
      37             : 
      38           0 :   VersionRepository get versionRepository => throw "not implemented";
      39             : 
      40           0 :   InAppUserRepository get inAppUserRepository => throw "not implemented";
      41             : 
      42           0 :   ClientSchemaRepository get localClientSchemaRepository => throw "not implemented";
      43             : 
      44           0 :   ClientSchemaRepository get remoteClientSchemaRepository => throw "not implemented";
      45             : 
      46           0 :   HelperGroupUserVisitRepository get pageUserVisitRemoteRepository => throw "not implemented";
      47             : 
      48           0 :   HelperGroupUserVisitRepository get pageUserVisitLocalRepository => throw "not implemented";
      49             : 
      50             : }
      51             : 
      52             : /// [UserAppContext] inherited class to provide some context to all childs
      53             : ///  - this class will retain [HttpClient] to pass to all childs
      54             : class HttpUserAppContext implements UserAppContext {
      55             : 
      56             :   final PageRepository _pageRepository;
      57             : 
      58             :   final ClientHelperRepository _helperRepository;
      59             : 
      60             :   final InAppUserRepository _inAppUserRepository;
      61             : 
      62             :   final VersionRepository _versionRepository;
      63             : 
      64             :   final HelperGroupUserVisitRepository _pageUserVisitRemoteRepository, _pageUserVisitLocalRepository;
      65             : 
      66             :   final ClientSchemaRepository _clientSchemaLocalRepository, _clientSchemaRemoteRepository;
      67             : 
      68           2 :   factory HttpUserAppContext.create({@required url, @required String token})
      69           2 :     => HttpUserAppContext._private(
      70           2 :       hiveClient: HiveClient(),
      71           2 :       httpClient: url == null || token == null ? null : HttpClient.create(url, token)
      72             :     );
      73             : 
      74           2 :   HttpUserAppContext._private({
      75             :     @required HiveClient hiveClient,
      76             :     @required HttpClient httpClient,
      77           0 :   }) : assert(httpClient != null),
      78           2 :       this._pageUserVisitRemoteRepository = HelperGroupUserVisitHttpRepository(httpClient: httpClient),
      79           4 :       this._pageUserVisitLocalRepository = HelperGroupUserVisitLocalRepository(hiveBoxOpener: hiveClient.openVisitsBox),
      80           4 :       this._clientSchemaLocalRepository = ClientSchemaLocalRepository(hiveBoxOpener: hiveClient.openSchemaBox),
      81           2 :       this._clientSchemaRemoteRepository = ClientSchemaRemoteRepository(httpClient: httpClient),
      82           2 :       this._pageRepository = PageRepository(httpClient: httpClient),
      83           2 :       this._helperRepository = ClientHelperRepository(httpClient: httpClient),
      84           2 :       this._versionRepository = VersionHttpRepository(httpClient: httpClient),
      85           2 :       this._inAppUserRepository = InAppUserRepository(httpClient: httpClient);
      86             : 
      87           2 :   @override
      88           2 :   PageRepository get pageRepository => _pageRepository;
      89             : 
      90           2 :   @override
      91           2 :   ClientHelperRepository get helperRepository => _helperRepository;
      92             : 
      93           0 :   @override
      94           0 :   VersionRepository get versionRepository => _versionRepository;
      95             : 
      96           2 :   @override
      97           2 :   InAppUserRepository get inAppUserRepository => _inAppUserRepository;
      98             : 
      99           2 :   @override
     100           2 :   ClientSchemaRepository get localClientSchemaRepository => _clientSchemaLocalRepository;
     101             : 
     102           2 :   @override
     103           2 :   ClientSchemaRepository get remoteClientSchemaRepository => _clientSchemaRemoteRepository;
     104             : 
     105           2 :   @override
     106           2 :   HelperGroupUserVisitRepository get pageUserVisitRemoteRepository => _pageUserVisitRemoteRepository;
     107             : 
     108           2 :   @override
     109           2 :   HelperGroupUserVisitRepository get pageUserVisitLocalRepository => _pageUserVisitLocalRepository;
     110             : }

Generated by: LCOV version 1.14