π AppGuardian (Mock-Compatible Version)
This package provides a mock-compatible security monitoring system for Flutter applications.
It includes:
- β A model to represent permission status
- π A testable interface (
IPermissionService
) - π§ͺ A mock implementation for reliable unit testing
- π± A real implementation using
permission_handler
(for production use)
π¦ Installation
Add to your pubspec.yaml
:
dependencies:
permission_handler: ^11.3.0
app_guardian:
path: ./app_guardian_mock # or your local path
π§ How It Works
Abstract Interface
abstract class IPermissionService {
Future<PermissionStatusReport> checkPermissions();
}
Real Service (uses permission_handler)
final permissionService = RealPermissionService();
final status = await permissionService.checkPermissions();
Mock Service (for testing)
final mockService = MockPermissionService();
final status = await mockService.checkPermissions();
β Sample Output
PermissionStatusReport(
camera: false,
microphone: true,
location: true,
storage: false,
contacts: true
)
π§ͺ Test Example
test('Returns mock permission values correctly', () async {
final mockService = MockPermissionService();
final report = await mockService.checkPermissions();
expect(report.camera, false);
expect(report.microphone, true);
});
π License
MIT Β© 2025 Mehmet Γelik
Libraries
- app_guardian
- Main entry point for the AppGuardian security library.
- models/permission_status_report
- models/score_report
- network/api_security_checker
- permissions/permission_monitor
- security_score/security_score_calculator
- services/i_permission_service
- services/real_permission_service
- utils/logger