public function testGetListWhenFilterGroupExists()
 {
     $searchCriteriaMock = $this->getMock('Magento\\Framework\\Api\\SearchCriteriaInterface');
     $filterGroupMock = $this->getMock('Magento\\Framework\\Api\\Search\\FilterGroup', [], [], '', false);
     $searchCriteriaMock->expects($this->any())->method('getFilterGroups')->will($this->returnValue([$filterGroupMock]));
     $filterMock = $this->getMock('Magento\\Framework\\Api\\Filter', [], [], '', false);
     $filterGroupMock->expects($this->once())->method('getFilters')->willReturn([$filterMock]);
     $filterMock->expects($this->exactly(2))->method('getConditionType')->willReturn('like');
     $filterMock->expects($this->once())->method('getField')->willReturn('region_name');
     $filterMock->expects($this->once())->method('getValue')->willReturn('condition_value');
     $objectManager = new ObjectManager($this);
     $rateMock = $this->getTaxRateMock([]);
     $items = [$rateMock];
     $collectionMock = $objectManager->getCollectionMock('Magento\\Tax\\Model\\ResourceModel\\Calculation\\Rate\\Collection', $items);
     $collectionMock->expects($this->once())->method('addFieldToFilter')->with(['region_table.code'], [['like' => 'condition_value']]);
     $sortOrderMock = $this->getMock('Magento\\Framework\\Api\\SortOrder', [], [], '', false);
     $searchCriteriaMock->expects($this->any())->method('getSortOrders')->will($this->returnValue([$sortOrderMock]));
     $sortOrderMock->expects($this->once())->method('getField')->willReturn('field_name');
     $sortOrderMock->expects($this->once())->method('getDirection')->willReturn(SortOrder::SORT_ASC);
     $collectionMock->expects($this->once())->method('addOrder')->with('main_table.field_name', 'ASC');
     $currentPage = 1;
     $pageSize = 100;
     $searchCriteriaMock->expects($this->any())->method('getCurrentPage')->will($this->returnValue($currentPage));
     $searchCriteriaMock->expects($this->any())->method('getPageSize')->will($this->returnValue($pageSize));
     $rateMock = $this->getTaxRateMock([]);
     $collectionMock->expects($this->once())->method('joinRegionTable');
     $collectionMock->expects($this->once())->method('setCurPage')->with($currentPage);
     $collectionMock->expects($this->once())->method('setPageSize')->with($pageSize);
     $collectionMock->expects($this->once())->method('getSize')->will($this->returnValue(count($items)));
     $this->rateFactoryMock->expects($this->once())->method('create')->will($this->returnValue($rateMock));
     $rateMock->expects($this->any())->method('getCollection')->will($this->returnValue($collectionMock));
     $this->searchResultMock->expects($this->once())->method('setItems')->with($items)->willReturnSelf();
     $this->searchResultMock->expects($this->once())->method('setTotalCount')->with(count($items))->willReturnSelf();
     $this->searchResultMock->expects($this->once())->method('setSearchCriteria')->with($searchCriteriaMock)->willReturnSelf();
     $this->searchResultFactory->expects($this->once())->method('create')->willReturn($this->searchResultMock);
     $this->joinProcessorMock->expects($this->once())->method('process')->with($collectionMock);
     $this->model->getList($searchCriteriaMock);
 }