From 694564c45d42203c4375a7a6ea16073c0eaed068 Mon Sep 17 00:00:00 2001
From: Robert Lange <robert.lange@uni-leipzig.de>
Date: Wed, 7 Jun 2023 12:45:35 +0200
Subject: [PATCH] refs #24046 [finc] add test for getResolverConfig

* delete test result cache
* add gitignore for test result cache
* run with "vendor/bin/phpunit --configuration module/finc/tests/phpunit.xml module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php --filter testGetResolverConfig"
---
 module/finc/tests/.gitignore                  |  1 +
 module/finc/tests/.phpunit.result.cache       |  1 -
 .../fincTest/View/Helper/Root/OpenUrlTest.php | 61 +++++++++++++++++--
 3 files changed, 58 insertions(+), 5 deletions(-)
 create mode 100644 module/finc/tests/.gitignore
 delete mode 100644 module/finc/tests/.phpunit.result.cache

diff --git a/module/finc/tests/.gitignore b/module/finc/tests/.gitignore
new file mode 100644
index 00000000000..c3ed10e9289
--- /dev/null
+++ b/module/finc/tests/.gitignore
@@ -0,0 +1 @@
+*.cache
diff --git a/module/finc/tests/.phpunit.result.cache b/module/finc/tests/.phpunit.result.cache
deleted file mode 100644
index be8380b3308..00000000000
--- a/module/finc/tests/.phpunit.result.cache
+++ /dev/null
@@ -1 +0,0 @@
-C:37:"PHPUnit\Runner\DefaultTestResultCache":5538:{a:2:{s:7:"defects";a:1:{s:65:"FincTest\View\Helper\Root\OpenUrlTest::testValidateParamsEzbFalse";i:3;}s:5:"times";a:70:{s:53:"fincTest\Config\SearchSpecsReaderTest::testParentYaml";d:0.442;s:58:"fincTest\Config\SearchSpecsReaderTest::testSearchSpecsRead";d:0.171;s:58:"fincTest\Config\SearchSpecsReaderTest::testMissingFileRead";d:0.001;s:51:"fincTest\Config\SearchSpecsReaderTest::testYamlLoad";d:0.002;s:52:"fincTest\Config\SearchSpecsReaderTest::testYamlMerge";d:0.001;s:50:"VuFindTest\ILS\Driver\PAIATest::testChangePassword";d:0.03;s:40:"VuFindTest\ILS\Driver\PAIATest::testFees";d:0.005;s:41:"VuFindTest\ILS\Driver\PAIATest::testHolds";d:0.004;s:44:"VuFindTest\ILS\Driver\PAIATest::testRequests";d:0.004;s:48:"VuFindTest\ILS\Driver\PAIATest::testTransactions";d:0.008;s:43:"VuFindTest\ILS\Driver\PAIATest::testProfile";d:0.004;s:48:"VuFindTest\ILS\Driver\PAIATest::testValidRequest";d:0.003;s:48:"VuFindTest\ILS\Driver\PAIATest::testRenewDetails";d:0.001;s:45:"VuFindTest\ILS\Driver\PAIATest::testPlaceHold";d:0.004;s:64:"VuFindTest\ILS\Driver\PAIATest::testPlaceStorageRetrievalRequest";d:0.004;s:41:"VuFindTest\ILS\Driver\PAIATest::testRenew";d:0.006;s:56:"VuFindTest\ILS\Driver\PAIATest::testMissingConfiguration";d:0.001;s:66:"VuFindTest\ILS\Driver\PAIAFincTest::testMapOptionsPickupBranchTrue";d:0;s:57:"VuFindTest\ILS\Driver\PAIAFincTest::testMapOptionsNewTrue";d:0;s:79:"VuFindTest\ILS\Driver\PAIAFincTest::testMapOptionsPickupBranchFalseNoConditions";d:0.001;s:81:"VuFindTest\ILS\Driver\PAIAFincTest::testMapOptionsPickupBranchTrueUnknownOptionId";d:0;s:83:"VuFindTest\ILS\Driver\PAIAFincTest::testGetMyHoldsWithoutOptionConfigurationDefined";d:0.004;s:76:"VuFindTest\ILS\Driver\PAIAFincTest::testGetMyHoldsWithoutPaiaResponseOptions";d:0.006;s:69:"VuFindTest\ILS\Driver\PAIAFincTest::testGetMyHoldsAllowUnknownOptions";d:0.004;s:63:"VuFindTest\ILS\Driver\PAIAFincTest::testGetMyHoldsWrongInstance";d:0.004;s:66:"VuFindTest\ILS\Driver\PAIAFincTest::testGetMyHoldsWithPickUpBranch";d:0.006;s:73:"VuFindTest\ILS\Driver\PAIAFincTest::testGetMyHoldsWithAnotherPickUpBranch";d:0.004;s:81:"VuFindTest\ILS\Driver\PAIAFincTest::testGetMyHoldsWithMultipleOptionsPickUpBranch";d:0.004;s:63:"VuFindTest\ILS\Driver\PAIAFincTest::testgetOptionsReturnsIDTrue";d:0.002;s:68:"VuFindTest\ILS\Driver\PAIAFincTest::testgetOptionsNotOnlyFirstButAll";d:0.002;s:66:"VuFindTest\ILS\Driver\PAIAFincTest::testgetOptionsReturnsLabelTrue";d:0.004;s:67:"VuFindTest\ILS\Driver\PAIAFincTest::testgetOptionsReturnsEmptyArray";d:0.003;s:58:"VuFindTest\ILS\Driver\PAIAFincTest::testCallMapOptionsTrue";d:0.005;s:59:"VuFindTest\ILS\Driver\PAIAFincTest::testCallMapOptionsFalse";d:0.007;s:54:"VuFindTest\ILS\Driver\PAIAFincTest::testChangePassword";d:0.004;s:44:"VuFindTest\ILS\Driver\PAIAFincTest::testFees";d:0.004;s:45:"VuFindTest\ILS\Driver\PAIAFincTest::testHolds";d:0.006;s:48:"VuFindTest\ILS\Driver\PAIAFincTest::testRequests";d:0.004;s:52:"VuFindTest\ILS\Driver\PAIAFincTest::testTransactions";d:0.008;s:47:"VuFindTest\ILS\Driver\PAIAFincTest::testProfile";d:0.005;s:52:"VuFindTest\ILS\Driver\PAIAFincTest::testValidRequest";d:0.003;s:52:"VuFindTest\ILS\Driver\PAIAFincTest::testRenewDetails";d:0.001;s:49:"VuFindTest\ILS\Driver\PAIAFincTest::testPlaceHold";d:0.004;s:68:"VuFindTest\ILS\Driver\PAIAFincTest::testPlaceStorageRetrievalRequest";d:0.009;s:45:"VuFindTest\ILS\Driver\PAIAFincTest::testRenew";d:0.004;s:60:"VuFindTest\ILS\Driver\PAIAFincTest::testMissingConfiguration";d:0;s:64:"fincTest\RecordDriver\SolrMarcNewerPreviousTest::testNewerTitles";d:0.015;s:67:"fincTest\RecordDriver\SolrMarcNewerPreviousTest::testPreviousTitles";d:0.011;s:64:"fincTest\RecordDriver\SolrMarcNewerPreviousTest::testGetUniqueId";d:0;s:65:"FincTest\View\Helper\Root\ExternalCatalogueLinkTest::testGetLinks";d:0.004;s:66:"FincTest\View\Helper\Root\OpenUrlTest::testAddCustomParamsNoParams";d:0.03;s:70:"FincTest\View\Helper\Root\OpenUrlTest::testAddCustomStaticParamsForEzb";d:0.005;s:75:"FincTest\View\Helper\Root\OpenUrlTest::testDONTOverrideExistingParamsForEzb";d:0.005;s:71:"FincTest\View\Helper\Root\OpenUrlTest::testAddCustomStaticParamsForRedi";d:0.005;s:76:"FincTest\View\Helper\Root\OpenUrlTest::testDONTOverrideExistingParamsForRedi";d:0.005;s:71:"FincTest\View\Helper\Root\OpenUrlTest::testAddCustomDynamicParamsForEzb";d:0.005;s:72:"FincTest\View\Helper\Root\OpenUrlTest::testAddCustomDynamicParamsForRedi";d:0.005;s:65:"FincTest\View\Helper\Root\OpenUrlTest::testValidateParamsEzbFalse";d:0.005;s:64:"FincTest\View\Helper\Root\OpenUrlTest::testValidateParamsEzbTrue";d:0.027;s:63:"FincTest\View\Helper\Root\OpenUrlTest::testIsActiveIsIdempotent";d:0.008;s:63:"FincTest\View\Helper\Root\OpenUrlTest::testCheckContextDefaults";d:0.028;s:68:"FincTest\View\Helper\Root\OpenUrlTest::testCheckContextWithOverrides";d:0.005;s:60:"FincTest\View\Helper\Root\OpenUrlTest::testCheckContextNoUrl";d:0.005;s:73:"FincTest\View\Helper\Root\OpenUrlTest::testCheckExcludedRecordsRulesFalse";d:0.003;s:72:"FincTest\View\Helper\Root\OpenUrlTest::testCheckExcludedRecordsRulesTrue";d:0.003;s:93:"FincTest\View\Helper\Root\OpenUrlTest::testCheckExcludedRecordsRulesFalseDueToWildcardFailure";d:0.031;s:74:"FincTest\View\Helper\Root\OpenUrlTest::testCheckSupportedRecordsRulesFalse";d:0.003;s:91:"FincTest\View\Helper\Root\OpenUrlTest::testCheckSupportedRecordsRulesWithWildcardStillFalse";d:0.003;s:73:"FincTest\View\Helper\Root\OpenUrlTest::testCheckSupportedRecordsRulesTrue";d:0.003;s:67:"FincTest\View\Helper\Root\OpenUrlTest::testRecordDriverClassInRules";d:0.005;}}}
\ No newline at end of file
diff --git a/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php b/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php
index 3f9e9f69604..dd4b6f47318 100644
--- a/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php
+++ b/module/finc/tests/unit-tests/src/fincTest/View/Helper/Root/OpenUrlTest.php
@@ -27,7 +27,12 @@
  */
 namespace FincTest\View\Helper\Root;
 
+use finc\Resolver\Driver\Ezb;
+use finc\Resolver\Driver\FincResolverDriverFactory;
+use finc\Resolver\Driver\Redi;
 use finc\View\Helper\Root\OpenUrl;
+use Laminas\Config\Config;
+use VuFindTest\Container\MockContainer;
 
 /**
  * Open Url Test Class
@@ -40,9 +45,9 @@ use finc\View\Helper\Root\OpenUrl;
  */
 class OpenUrlTest extends \VuFindTest\View\Helper\Root\OpenUrlTest
 {
-    const ISSN      = 456;
-    const OPEN_URL  = "open=url";
-    const ZDB_ID    = 123;
+    const ISSN = 456;
+    const OPEN_URL = "open=url";
+    const ZDB_ID = 123;
 
     public function testAddCustomParamsNoParams()
     {
@@ -147,6 +152,54 @@ class OpenUrlTest extends \VuFindTest\View\Helper\Root\OpenUrlTest
         $this->assertTrue($instanceWithIssnAndZdbId->isActive());
     }
 
+    /**
+     * @return void
+     */
+    public function testGetResolverConfig()
+    {
+        $url['ezb'] = 'http://ezb_url.xxx';
+        $url['redi'] = 'http://redi_url.yyy';
+
+        $bibid = 'test_bibid';
+        $dummyParams = 'ctx_ver=1&REMOTE_ADDR=2';
+
+        $resolverConfig = new Config(
+            [
+                'Ezb' => [
+                    'url' => $url['ezb'],
+                    'bibid' => $bibid
+                ],
+                'Redi' => [
+                    'url' => $url['redi'],
+                    'bibid' => $bibid
+                ]
+            ]
+        );
+        $mockConfigReader = $this->createMock(\VuFind\Config\PluginManager::class);
+        $mockConfigReader->expects($this->any())->method('get')
+            ->with($this->equalTo('Resolver'))
+            ->will($this->returnValue($resolverConfig));
+
+        $container = new MockContainer($this);
+        $container->set('VuFind\Config', $mockConfigReader);
+
+        $httpService = $this->getMockBuilder(\VuFindHttp\HttpService::class)
+            ->getMock();
+        $httpService->expects($this->any())->method('createClient')
+            ->will($this->returnValue(($client = new \Laminas\Http\Client())));
+        $container->set('VuFindHttp\HttpService', $httpService);
+
+        $factory = new FincResolverDriverFactory();
+
+        foreach (['ezb' => Ezb::class, 'redi' => Redi::class] as $name => $clazz) {
+            $this->assertStringContainsString(
+                $url[$name],
+                $factory($container, $clazz)->getResolverUrl($dummyParams),
+                "Missing or wrong base url for $name resolver."
+            );
+        }
+    }
+
     public function testIsActiveIsIdempotent()
     {
         $this->rulesConfig['Ezb'] = [0 => ['include' => ["methods" => "getSourceID"]]];
@@ -234,7 +287,7 @@ class OpenUrlTest extends \VuFindTest\View\Helper\Root\OpenUrlTest
             ->disableOriginalConstructor()->getMock();
 
         $driver->method('tryMethod')
-            ->will($this->returnCallback(array($this, 'getCallback')));
+            ->will($this->returnCallback([$this, 'getCallback']));
 
         $driver->method('getOpenUrl')
                 ->willReturn(self::OPEN_URL);
-- 
GitLab