public function testContainerShouldBeProvided()
{
$contracts = [['interface' => 'Artesaos\\Defender\\Contracts\\Defender', 'implementation' => 'Artesaos\\Defender\\Defender', 'alias' => 'defender'], ['interface' => 'Artesaos\\Defender\\Contracts\\Javascript', 'implementation' => 'Artesaos\\Defender\\Javascript', 'alias' => 'defender.javascript'], ['interface' => 'Artesaos\\Defender\\Contracts\\Repositories\\PermissionRepository', 'implementation' => 'Artesaos\\Defender\\Repositories\\Eloquent\\EloquentPermissionRepository', 'alias' => 'defender.permission'], ['interface' => 'Artesaos\\Defender\\Contracts\\Repositories\\RoleRepository', 'implementation' => 'Artesaos\\Defender\\Repositories\\Eloquent\\EloquentRoleRepository', 'alias' => 'defender.role']];
foreach ($contracts as $contract) {
$this->assertInstanceOf($contract['interface'], $this->app[$contract['interface']]);
$this->assertInstanceOf($contract['interface'], $this->app[$contract['implementation']]);
$this->assertInstanceOf($contract['interface'], $this->app[$contract['alias']]);
$this->assertInstanceOf($contract['implementation'], $this->app[$contract['alias']]);
}
}