Skip to content
docsv0.13.1

PluginRegistryContractTestBase

The registry contract, executable: every implementation (in-memory, file, and the host's database adapter) must pass exactly these behaviors.

PluginRegistryContractTestBase::testFindReturnsNullWhenUnknownAndTheRecordOnceRegistered()

public function testFindReturnsNullWhenUnknownAndTheRecordOnceRegistered(): void

find() returns null for an unknown name and the full record once registered.

PluginRegistryContractTestBase::testRegisterRefusesADuplicateName()

public function testRegisterRefusesADuplicateName(): void

register() refuses a duplicate plugin name.

PluginRegistryContractTestBase::testEnabledNamesListsOnlyEnabledPlugins()

public function testEnabledNamesListsOnlyEnabledPlugins(): void

enabledNames() lists only the plugins whose enabled flag is on.

PluginRegistryContractTestBase::testInstalledAndEnabledFiltersBothFlags()

public function testInstalledAndEnabledFiltersBothFlags(): void

installed() keeps every registered record; installedAndEnabled() requires both flags.

PluginRegistryContractTestBase::testSetEnabledFlipsTheFlagAndThrowsOnUnknown()

public function testSetEnabledFlipsTheFlagAndThrowsOnUnknown(): void

setEnabled() flips the flag in place and throws for an unknown name.

PluginRegistryContractTestBase::testSaveOverwritesAndThrowsOnUnknown()

public function testSaveOverwritesAndThrowsOnUnknown(): void

save() overwrites an existing record and throws for an unknown name.

PluginRegistryContractTestBase::testUnregisterRemovesAndIsIdempotent()

public function testUnregisterRemovesAndIsIdempotent(): void

unregister() removes the record and is a no-op the second time.