Drupal modules for browsing and managing Fedora-based digital repositories.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

87 lines
2.4 KiB

<?php
namespace Drupal\Tests\islandora\Kernel;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Config\ImmutableConfig;
use Drupal\islandora\GeminiClientFactory;
use Islandora\Crayfish\Commons\Client\GeminiClient;
use Prophecy\Argument;
use Psr\Log\LoggerInterface;
/**
* Class GeminiClientFactoryTest.
*
* @package Drupal\Tests\islandora\Kernel
* @group islandora
* @coversDefaultClass \Drupal\islandora\GeminiClientFactory
*/
class GeminiClientFactoryTest extends IslandoraKernelTestBase {
/**
* Logger.
*
* @var \Psr\Log\LoggerInterface
*/
private $logger;
/**
* {@inheritdoc}
*/
public function setUp() {
parent::setUp();
$prophecy = $this->prophesize(LoggerInterface::class);
$prophecy->notice(Argument::any());
$this->logger = $prophecy->reveal();
}
/**
* @covers ::create
* @expectedException \Symfony\Component\HttpKernel\Exception\PreconditionFailedHttpException
*/
public function testNoUrlBlank() {
$prophecy = $this->prophesize(ImmutableConfig::class);
$prophecy->get(Argument::any())->willReturn('');
$immutConfig = $prophecy->reveal();
$prophecy = $this->prophesize(ConfigFactoryInterface::class);
$prophecy->get(Argument::any())->willReturn($immutConfig);
$configFactory = $prophecy->reveal();
GeminiClientFactory::create($configFactory, $this->logger);
}
/**
* @covers ::create
* @expectedException \Symfony\Component\HttpKernel\Exception\PreconditionFailedHttpException
*/
public function testNoUrlNull() {
$prophecy = $this->prophesize(ImmutableConfig::class);
$prophecy->get(Argument::any())->willReturn(NULL);
$immutConfig = $prophecy->reveal();
$prophecy = $this->prophesize(ConfigFactoryInterface::class);
$prophecy->get(Argument::any())->willReturn($immutConfig);
$configFactory = $prophecy->reveal();
GeminiClientFactory::create($configFactory, $this->logger);
}
/**
* @covers ::create
* @throws \Exception
*/
public function testUrl() {
$prophecy = $this->prophesize(ImmutableConfig::class);
$prophecy->get(Argument::any())->willReturn('http://localhost:8000/gemini');
$immutConfig = $prophecy->reveal();
$prophecy = $this->prophesize(ConfigFactoryInterface::class);
$prophecy->get(Argument::any())->willReturn($immutConfig);
$configFactory = $prophecy->reveal();
$this->assertInstanceOf(GeminiClient::class, GeminiClientFactory::create($configFactory, $this->logger));
}
}