πŸ” 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