Skip to content

Magento 2 Testcase for fetching data from database

I had written the test case for my function which is fetching data from the cms_page table but I’m getting error when running my unit test cases
this is my error
Error: Call to a member function addFilter() on string i added my model and test case file here

 <?php
/**
* Created By : Pvt. Ltd.
 */
namespace RoyalCmsPageModuleModel;
class CmsPage 
{
    const url= "home";
    /**
     * @var MagentoCmsApiPageRepositoryInterface
     */
    protected $pageRepositoryInterface;
    /**
     * @var MagentoFrameworkApiSearchCriteriaBuilder
     */
    protected $searchCriteriaBuilder;
    /**
     * @param MagentoFrameworkViewElementTemplateContext $context
     * @param MagentoCmsApiPageRepositoryInterface         $pageRepositoryInterface
     * @param MagentoFrameworkApiSfearchCriteriaBuilder     $searchCriteriaBuilder
     * @param array                                            $data
     */
    public function construct(
        
        MagentoCmsApiPageRepositoryInterface $pageRepositoryInterface,
        MagentoFrameworkApiSearchCriteriaBuilder $searchCriteriaBuilder,
        array $data = []
    ) {
        $this->pageRepositoryInterface = $pageRepositoryInterface;
        $this->searchCriteriaBuilder = $searchCriteriaBuilder;
        
    }
    
    /**
     * Return CMS Page Details by URL Key
     * 
     * @param  string $urlKey
     * @return string
     */
    public function getCmsPageDetails(){
            
            $searchCriteria = $this->searchCriteriaBuilder->addFilter('identifier', static::url,'eq')->create();
            $pages = $this->pageRepositoryInterface->getList($searchCriteria)->getContent();
            return $pages;
       
    }
   
}

test case

<?php
namespace RoyalCmsPageModuleTestUnitModel;
use MagentoFrameworkTestFrameworkUnitHelperObjectManager;
use RoyalCmsPageModuleModelCmsPage;
 
class CmsPageTest extends PHPUnitFrameworkTestCase
{
    protected $pageRepositoryInterface;
    protected $searchCriteriaBuilder;
    protected $model;
    protected $objectManager;
    private function getSimpleMock($orginalClassName)
    {
        return $this->getMockBuilder($orginalClassName)
        ->disableOriginalConstructor()
        ->getMock();
    }
    public function setUp(): void
    {
       $pageRepositoryInterface = $this->getSimpleMock(PageRepositoryInterface::class);
       $searchCriteriaBuilder = $this->getSimpleMock(SearchCriteriaBuilder::class);
       $objectManager = new ObjectManager($this);

       $this->model = $objectManager->getObject(
        CmsPage::class,
        [
            'pageRepositoryInterface' => $this->pageRepositoryInterface,
            'searchCriteriaBuilder' => $this->searchCriteriaBuilder

        ]
        );
        
    }
    public function tearDown(): void
    {
    }

    /**
     * this function tests the result of the addition of two numbers
     *
     */
    public function testCmsPageDetails(): void
    {
        $result = $this->model->getCmsPageDetails();
        $expectedResult = 10.0;
        $this->assertEquals($expectedResult, $result);
    }

   
}

hope anyone helps me to understand what mistake i did
Thanks in advance!