From 86eba7806470452f858b7e51116869b30139c2ba Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 13 Feb 2019 11:23:28 +0700 Subject: [PATCH] Add tests for isAvailable() --- tests/TikaServerTextExtractorTest.php | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tests/TikaServerTextExtractorTest.php b/tests/TikaServerTextExtractorTest.php index 0d9a7ed..2239499 100644 --- a/tests/TikaServerTextExtractorTest.php +++ b/tests/TikaServerTextExtractorTest.php @@ -2,9 +2,11 @@ namespace SilverStripe\TextExtraction\Tests; +use PHPUnit_Framework_MockObject_MockObject; use SilverStripe\Assets\File; use SilverStripe\Dev\SapphireTest; use SilverStripe\TextExtraction\Extractor\TikaServerTextExtractor; +use SilverStripe\TextExtraction\Rest\TikaRestClient; /** * @group tika-tests @@ -33,4 +35,44 @@ class TikaServerTextExtractorTest extends SapphireTest $this->assertTrue($extractor->supportsMime('text/html')); $this->assertFalse($extractor->supportsMime('application/not-supported')); } + + /** + * @param string $version + * @param bool $expected + * @dataProvider isAvailableProvider + */ + public function testIsAvailable($version, $expected) + { + /** @var PHPUnit_Framework_MockObject_MockObject|TikaServerTextExtractor $extractor */ + $extractor = $this->getMockBuilder(TikaServerTextExtractor::class) + ->setMethods(['getClient', 'getServerEndpoint']) + ->getMock(); + + $client = $this->createMock(TikaRestClient::class); + $client->method('isAvailable')->willReturn(true); + $client->method('getVersion')->willReturn($version); + + $extractor->method('getClient')->willReturn($client); + $extractor->method('getServerEndpoint')->willReturn('tikaserver.example'); + + $result = $extractor->isAvailable(); + $this->assertSame($expected, $result); + } + + /** + * @return array[] + */ + public function isAvailableProvider() + { + return [ + ['1.5.2', false], + ['1.5', false], + ['1.7.0', true], + ['1.7.5', true], + ['1.8.0', true], + ['1.7', true], + ['1.8', true], + ['2.0.0', true], + ]; + } }