getPermissions()); self::assertFalse($sut->hasSection('foo')); self::assertNull($sut->getSection('foo')); self::assertInstanceOf(PermissionsEvent::class, $sut->removePermission('test', 'foo')); $sut->addPermissions('foo', []); self::assertTrue($sut->hasSection('foo')); self::assertEquals([], $sut->getSection('foo')); self::assertEquals(['foo' => []], $sut->getPermissions()); self::assertInstanceOf(PermissionsEvent::class, $sut->removeSection('foo')); self::assertFalse($sut->hasSection('foo')); self::assertNull($sut->getSection('foo')); $sut->addPermissions('bar', ['foo', 'hello', 'world', 'test']); self::assertEquals(['bar' => ['foo', 'hello', 'world', 'test']], $sut->getPermissions()); self::assertInstanceOf(PermissionsEvent::class, $sut->removePermission('bar', 'xxx')); self::assertEquals(['foo', 'hello', 'world', 'test'], array_values($sut->getSection('bar'))); self::assertInstanceOf(PermissionsEvent::class, $sut->removePermission('bar', 'foo')); self::assertEquals(['hello', 'world', 'test'], array_values($sut->getSection('bar'))); self::assertInstanceOf(PermissionsEvent::class, $sut->removePermission('bar', 'test')); self::assertEquals(['hello', 'world'], array_values($sut->getSection('bar'))); self::assertInstanceOf(PermissionsEvent::class, $sut->removePermission('bar', 'hello')); self::assertEquals(['world'], array_values($sut->getSection('bar'))); self::assertInstanceOf(PermissionsEvent::class, $sut->removePermission('bar', 'world')); self::assertEquals([], array_values($sut->getSection('bar'))); } }