PHP Classes

File: tests/TestRegistration/PackageTest.php

Recommend this page to a friend!
  Packages of Thierry Feuzeu   Jaxon   tests/TestRegistration/PackageTest.php   Download  
File: tests/TestRegistration/PackageTest.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,798 bytes
 

Contents

Class file image Download
<?php

namespace Jaxon\Tests\TestRegistration;

require_once
__DIR__ . '/../src/packages.php';

use
Jaxon\Exception\SetupException;
use
Jaxon\Plugin\AbstractPackage;
use
Jaxon\Utils\Http\UriException;
use
PHPUnit\Framework\TestCase;
use
SamplePackage;


class
PackageTest extends TestCase
{
   
/**
     * @throws SetupException
     */
   
public function setUp(): void
   
{
       
jaxon()->setOption('core.prefix.class', '');
       
jaxon()->setOption('core.request.uri', 'http://example.test/path');
       
jaxon()->registerPackage(SamplePackage::class,
            [
'option1' => 'value1', 'option2' => ['option3' => 'value3']]);
    }

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

   
/**
     * @throws UriException
     */
    // public function testPackage()
    // {
    // $this->assertNotNull(jaxon()->package(SamplePackage::class));
    // $this->assertEquals(SamplePackage::class, get_class(jaxon()->package(SamplePackage::class)));
    // $xSamplePackage = jaxon()->package(SamplePackage::class);
    // $xSamplePackage->ready();
    // $sScript = jaxon()->getScript();
    // $this->assertStringContainsString('SamplePackageClass = {}', $sScript);
    // }

   
public function testPackageOptions()
    {
       
/** @var AbstractPackage */
       
$xPackage = jaxon()->di()->g(SamplePackage::class);
       
$xPackageConfig = $xPackage->getConfig();
       
$this->assertEquals('value1', $xPackageConfig->getOption('option1'));
       
$this->assertEquals('value3', $xPackageConfig->getOption('option2.option3'));

       
$this->assertEquals('value1', $xPackage->getOption('option1'));
       
$this->assertEquals('value3', $xPackage->getOption('option2.option3'));
    }

    public function
testRegisterInvalidPackage()
    {
        require_once
__DIR__ . '/../src/sample.php';
       
// Register a class which is not a package as a package.
       
$this->expectException(SetupException::class);
       
jaxon()->registerPackage('Sample');
    }

    public function
testRegisterPackageWithIncorrectConfig()
    {
       
// Register a package with incorrect config data type.
       
$this->expectException(SetupException::class);
       
jaxon()->registerPackage('BadConfigPackage');
    }

    public function
testGetInvalidPackage()
    {
       
$this->assertNull(jaxon()->package('Sample'));
    }

    public function
testRegisterUnknownPackage()
    {
       
// Register a class which doesn't exist.
       
$this->expectException(SetupException::class);
       
jaxon()->registerPackage('UnknownPackage');
    }

    public function
testGetUnknownPackage()
    {
       
$this->assertNull(jaxon()->package('UnknownPackage'));
    }
}