public function testExceptionIsThrownIfSolrIsNotAccessible()
 {
     $fieldCode = 'foo';
     $fieldValue = 'bar';
     $testSolrConnectionPath = 'http://localhost:8983/solr/nonexistingcore/';
     $client = new CurlSolrHttpClient($testSolrConnectionPath);
     $facetFieldTransformationRegistry = new FacetFieldTransformationRegistry();
     $searchCriteria = new SearchCriterionEqual($fieldCode, $fieldValue);
     $searchEngine = new SolrSearchEngine($client, $searchCriteria, $facetFieldTransformationRegistry);
     $this->expectException(SolrConnectionException::class);
     $this->expectExceptionMessage('Error 404 Not Found');
     $searchCriteria = new SearchCriterionEqual($fieldCode, $fieldValue);
     $sortOrderConfig = $this->createTestSortOrderConfig($fieldCode, SortDirection::ASC);
     $searchEngine->query($searchCriteria, $this->createTestQueryOptions($sortOrderConfig));
 }
 public function testSolrQuerySentToHttpClientContainsGlobalProductListingCriteria()
 {
     $searchString = 'foo';
     $filterSelection = [];
     $spy = $this->once();
     $this->mockHttpClient->expects($spy)->method('select')->willReturn([]);
     $this->searchEngine->queryFullText($searchString, $this->createStubQueryOptions($filterSelection));
     $queryString = $spy->getInvocations()[0]->parameters[0]['q'];
     $expectationRegExp = sprintf('/^\\(\\(\\(full_text_search:"%s"\\) AND %s:"%s"\\)\\)/', $searchString, $this->testGlobalProductListingCriteriaFieldName, $this->testGlobalProductListingCriteriaFieldValue);
     $this->assertRegExp($expectationRegExp, $queryString);
 }