Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Core/tests/TestCase/Configure/CroogoJsonReaderTest.php
<?php

namespace Croogo\Core\Test\TestCase\Configure;

use
Cake\Core\Plugin;
use
Croogo\Core\Configure\CroogoJsonReader;
use
Croogo\Core\TestSuite\TestCase;

class
MockCroogoJsonReader extends CroogoJsonReader
{

    public
$written = null;

    public function
getPath()
    {
        return
$this->_path;
    }
}

class
CroogoJsonReaderTest extends TestCase
{

   
/**
     * @var CroogoJsonReader
     */
   
private $CroogoJsonReader;

   
/**
     * @var string
     */
   
private $testFile;

   
/**
     * setUp
     */
   
public function setUp()
    {
       
parent::setUp();
       
$this->CroogoJsonReader = $this->getMockBuilder(MockCroogoJsonReader::class)
            ->
setMethods(null)
            ->
setConstructorArgs([
               
Plugin::path('Croogo/Core') . '..' . DS . 'tests' . DS . 'test_app' . DS . 'config' . DS
           
])
            ->
getMock();
       
$this->testFile = $this->CroogoJsonReader->getPath() . 'test.json';
    }

   
/**
     * tearDown
     */
   
public function tearDown()
    {
        if (
file_exists($this->testFile)) {
           
unlink($this->testFile);
        }
    }

   
/**
     * testDefaultPath
     */
   
public function testDefaultPath()
    {
       
$path = $this->CroogoJsonReader->getPath();
       
$this->assertEquals(Plugin::path('Croogo/Core') . '..' . DS . 'tests' . DS . 'test_app' . DS . 'config' . DS, $path);
    }

   
/**
     * testRead
     */
   
public function testRead()
    {
       
$settings = $this->CroogoJsonReader->read('settings', 'settings');
       
$expected = [
           
'acl_plugin' => 'Acl',
           
'email' => 'you@your-site.com',
           
'feed_url' => '',
           
'locale' => 'eng',
           
'status' => 1,
           
'tagline' => 'A CakePHP powered Content Management System.',
           
'theme' => '',
           
'timezone' => 0,
           
'title' => 'Croogo - Test',
        ];
       
$this->assertEquals($expected, $settings['Site']);
    }

   
/**
     * testDump
     */
   
public function testDump()
    {
       
$settings = [
           
'Site' => [
               
'title' => 'Croogo - Test (Edited)',
            ],
           
'Reading' => [
               
'date_time_format' => 'Y m d',
               
'nodes_per_page' => 20,
            ],
           
'Nested' => [
               
'StringValue' => 'Is Fine',
               
'AnotherArray' => [
                   
'should' => 'be',
                   
'persisted' => 'correctly',
                ],
            ],
           
'Hook' => [
               
'someKey' => 'value',
               
'model_properties' => ['ignored', 'to', 'oblivion'],
               
'controller_properties' => ['ignored', 'to', 'oblivion'],
            ],
        ];
       
$this->CroogoJsonReader->dump(basename($this->testFile), $settings);
       
$expected = <<<END
{
\s+"Site": {
\s+"title": "Croogo - Test \(Edited\)"
\s+},
\s+"Reading": {
\s+"date_time_format": "Y m d",
\s+"nodes_per_page": 20
\s+},
\s+"Nested": {
\s+"StringValue": "Is Fine",
\s+"AnotherArray": {
\s+"should": "be",
\s+"persisted": "correctly"
\s+}
\s+},
\s+"Hook": {
\s+"someKey": "value"
\s+}
}
END;
       
$this->assertRegExp($expected, file_get_contents($this->testFile));
    }
}