<?php

namespace Ecomnova\Tests;

use Ecomnova\CartPageInterface;
use Ecomnova\CategoryPageInterface;
use Ecomnova\EcomnovaPage;
use Ecomnova\PageClassFactory;
use Ecomnova\ProductPageAppleyardDesktop;
use Ecomnova\ProductPageInterface;
use PHPUnit\Framework\TestCase;
use Ecomnova\EcomnovaAbstract;

class FactoryTest extends TestCase
{
    public function testFactory()
    {
        $this->assertInstanceOf('Ecomnova\ProductPageAppleyardDesktop',
            PageClassFactory::getProductPageInstance(EcomnovaAbstract::WEBSITE_AY_DESKTOP));

        $this->assertInstanceOf('Ecomnova\CategoryPageAppleyardDesktop',
            PageClassFactory::createCategoryPageInstance(EcomnovaAbstract::WEBSITE_AY_DESKTOP));

        $this->assertInstanceOf('Ecomnova\CartPageAppleyardDesktop',
            PageClassFactory::createCartPageInstance(EcomnovaAbstract::WEBSITE_AY_DESKTOP));
    }

    public function testFactoryEcomnovaPage()
    {
        $instance = EcomnovaPage::getTesterInstance(
            ProductPageInterface::class
        ) ;
        $this->assertInstanceOf('Ecomnova\ProductPageAppleyardDesktop', $instance);

        $instance = EcomnovaPage::getTesterInstance(
            CategoryPageInterface::class
        );
        $this->assertInstanceOf('Ecomnova\CategoryPageAppleyardDesktop', $instance);

        $instance = EcomnovaPage::getTesterInstance(
            CartPageInterface::class
        );
        $this->assertInstanceOf('Ecomnova\CartPageAppleyardDesktop', $instance);
    }
}