PHP Classes

File: tests/TestRegistration/NamespaceTest.php

Recommend this page to a friend!
  Packages of Thierry Feuzeu   Jaxon   tests/TestRegistration/NamespaceTest.php   Download  
File: tests/TestRegistration/NamespaceTest.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: 4 months ago
Size: 2,391 bytes
 

Contents

Class file image Download
<?php

namespace Jaxon\Tests\TestRegistration;

use
Jaxon\App\Component\Pagination;
use
Jaxon\Exception\SetupException;
use
Jaxon\Jaxon;
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;

use function
strlen;

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

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

   
/**
     * @throws SetupException
     */
   
public function setUp(): void
   
{
       
jaxon()->setOption('core.prefix.class', '');

       
// This directory is already registered with the autoload.
       
jaxon()->register(Jaxon::CALLABLE_DIR, __DIR__ . '/../src/Ns/Ajax',
            [
'namespace' => "Jaxon\\Tests\\Ns\\Ajax", 'autoload' => false]);
       
// This directory needs to be registered with the autoload.
       
jaxon()->register(Jaxon::CALLABLE_DIR, __DIR__ . '/../src/dir_ns', "Jaxon\\NsTests");

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

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

   
/**
     * @throws SetupException
     */
   
public function testRegisterWithUnderscoreAsSeparator()
    {
       
jaxon()->register(Jaxon::CALLABLE_CLASS, ClassA::class);
       
jaxon()->register(Jaxon::CALLABLE_CLASS, ClassB::class);
       
jaxon()->register(Jaxon::CALLABLE_CLASS, ClassC::class);
       
// The js is generated by the CallableClass plugin
        // $this->assertEquals('a345cf8862e7ce14752fba0e789adc1c', $this->xClassPlugin->getHash());
       
$this->assertEquals(32, strlen($this->xClassPlugin->getHash()));
       
$sJsCode = $this->xClassPlugin->getScript();
       
// file_put_contents(__DIR__ . '/../src/js/nsu.js', $sJsCode);
       
$this->assertEquals(file_get_contents(__DIR__ . '/../src/js/nsu.js'), $sJsCode);

       
$xCallable = $this->xClassPlugin->getCallable('Jaxon_Tests_Ns_Ajax_ClassA');
       
$this->assertEquals(CallableObject::class, get_class($xCallable));
    }
}