PHP Classes

File: tests/TestRegistrationApp/DirectoryTest.php

Recommend this page to a friend!
  Packages of Thierry Feuzeu   Jaxon   tests/TestRegistrationApp/DirectoryTest.php   Download  
File: tests/TestRegistrationApp/DirectoryTest.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Jaxon
Call PHP classes from JavaScript using AJAX
Author: By
Last change:
Date: 1 year ago
Size: 2,701 bytes
 

Contents

Class file image Download
<?php

namespace Jaxon\Tests\TestRegistrationApp;

use Jaxon\Exception\SetupException;
use Jaxon\Plugin\Request\CallableClass\CallableClassPlugin;
use Jaxon\Plugin\Request\CallableClass\CallableObject;
use Jaxon\Plugin\Request\CallableClass\CallableDirPlugin;
use Jaxon\Tests\Ns\Ajax\ClassA;
use Jaxon\Tests\Ns\Ajax\ClassB;
use Jaxon\Tests\Ns\Ajax\ClassC;
use PHPUnit\Framework\TestCase;


class DirectoryTest extends TestCase
{
    /**
     * @var CallableDirPlugin
     */
    protected $xDirPlugin;

    /**
     * @var CallableClassPlugin
     */
    protected $xClassPlugin;

    /**
     * @throws SetupException
     */
    public function setUp(): void
    {
        jaxon()->app()->setup(__DIR__ . '/../config/app/directories.php');

        $this->xDirPlugin = jaxon()->di()->getCallableDirPlugin();
        $this->xClassPlugin = jaxon()->di()->getCallableClassPlugin();
    }

    /**
     * @throws SetupException
     */
    public function tearDown(): void
    {
        jaxon()->reset();
        parent::tearDown();
    }

    /**
     * @throws SetupException
     */
    public function testCallableDirClasses()
    {
        $xClassACallable = $this->xClassPlugin->getCallable('ClassA');
        $xClassBCallable = $this->xClassPlugin->getCallable('ClassB');
        $xClassCCallable = $this->xClassPlugin->getCallable('ClassC');
        // Test callables classes
        $this->assertEquals(CallableObject::class, get_class($xClassACallable));
        $this->assertEquals(CallableObject::class, get_class($xClassBCallable));
        $this->assertEquals(CallableObject::class, get_class($xClassCCallable));
        // Check methods
        $this->assertTrue($xClassACallable->hasMethod('methodAa'));
        $this->assertTrue($xClassACallable->hasMethod('methodAb'));
        $this->assertFalse($xClassACallable->hasMethod('methodAc'));
    }

    /**
     * @throws SetupException
     */
    public function testCallableNsClasses()
    {
        $xClassACallable = $this->xClassPlugin->getCallable(ClassA::class);
        $xClassBCallable = $this->xClassPlugin->getCallable(ClassB::class);
        $xClassCCallable = $this->xClassPlugin->getCallable(ClassC::class);
        // Test callables classes
        $this->assertEquals(CallableObject::class, get_class($xClassACallable));
        $this->assertEquals(CallableObject::class, get_class($xClassBCallable));
        $this->assertEquals(CallableObject::class, get_class($xClassCCallable));
        // Check methods
        $this->assertTrue($xClassACallable->hasMethod('methodAa'));
        $this->assertTrue($xClassACallable->hasMethod('methodAb'));
        $this->assertFalse($xClassACallable->hasMethod('methodAc'));
    }
}