FakeGrantManager

class FakeGrantManager(var mockStatus: <Error class: unknown class> = GrantStatus.NOT_DETERMINED, var mockRequestResult: <Error class: unknown class> = GrantStatus.GRANTED)

An in-memory GrantManager for tests — no platform APIs, no Activity, no real permission dialog.

mockStatus and mockRequestResult are the defaults checkStatus/request return for any permission that hasn't been individually configured via setStatus/setRequestResult/ configure. Every call is recorded (checkStatusCalls, requestedGrants, requestCalled, openSettingsCalled, capturedLauncher) so a test can assert on interactions, not just return values.

val manager = FakeGrantManager(mockStatus = GrantStatus.DENIED)
manager.configure(AppGrant.CAMERA, status = GrantStatus.GRANTED)

val handler = GrantHandler(manager, AppGrant.CAMERA, testScope)
handler.requestSuspend() // GRANTED — CAMERA was configured; everything else defaults to DENIED

This is the same fake that used to be duplicated, with small drifts, inside seven different modules' own commonTest source sets — consolidated here so external consumers of Grant get an official test double instead of writing their own, and so this project stops maintaining near-identical copies of it.

Constructors

Link copied to clipboard
constructor(mockStatus: <Error class: unknown class> = GrantStatus.NOT_DETERMINED, mockRequestResult: <Error class: unknown class> = GrantStatus.GRANTED)

Properties

Link copied to clipboard
var capturedLauncher: <Error class: unknown class>?

The launcher passed to setLauncher, if any — null until a real one is captured.

Link copied to clipboard
val checkStatusCalls: MutableList<<Error class: unknown class>>

Every permission checkStatus has been called with, in call order.

Link copied to clipboard
var mockRequestResult: <Error class: unknown class>
Link copied to clipboard
var mockStatus: <Error class: unknown class>
Link copied to clipboard

True once openSettings has been called.

Link copied to clipboard

True once request has been called at least once, for any permission.

Link copied to clipboard
val requestedGrants: MutableList<<Error class: unknown class>>

Every permission request has been called with, in call order (duplicates included).

Link copied to clipboard
var shouldThrow: <Error class: unknown class>?

When non-null, checkStatus/request throw this instead of returning.

Link copied to clipboard

Simulates a slow platform call — checkStatus/request suspend for this long first.

Functions

Link copied to clipboard
open suspend fun checkStatus(grant: <Error class: unknown class>): <Error class: unknown class>
Link copied to clipboard
fun configure(grant: <Error class: unknown class>, status: <Error class: unknown class>, requestResult: <Error class: unknown class> = status)

Sets both checkStatus and request's return value for grant in one call.

Link copied to clipboard
open fun openSettings()
Link copied to clipboard
open suspend fun request(grant: <Error class: unknown class>): <Error class: unknown class>
open suspend fun request(grants: List<<Error class: unknown class>>): Map<<Error class: unknown class>, <Error class: unknown class>>
Link copied to clipboard
fun reset()

Clears every override and call record, and restores the constructor defaults.

Link copied to clipboard
open fun setLauncher(launcher: <Error class: unknown class>)
Link copied to clipboard
fun setRequestResult(grant: <Error class: unknown class>, result: <Error class: unknown class>)

Sets what request returns for grant specifically, overriding mockRequestResult.

Link copied to clipboard
fun setResult(grant: <Error class: unknown class>, result: <Error class: unknown class>)

Alias for setRequestResult — kept for source compatibility with pre-consolidation call sites.

Link copied to clipboard
fun setStatus(grant: <Error class: unknown class>, status: <Error class: unknown class>)

Sets what checkStatus returns for grant specifically, overriding mockStatus.