Skip to content

Commit

Permalink
#165 - added a unit test class for ViewState
Browse files Browse the repository at this point in the history
  • Loading branch information
alphadevx committed Aug 6, 2015
1 parent a1a8653 commit 31ddec9
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 0 deletions.
1 change: 1 addition & 0 deletions Alpha/View/ViewState.php
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ public function get($key)
*/
public function set($key, $value)
{
$config = ConfigProvider::getInstance();
$sessionProvider = $config->get('session.provider.name');
$session = SessionProviderFactory::getInstance($sessionProvider);
$attribute = new ReflectionProperty(get_class($this), $key);
Expand Down
95 changes: 95 additions & 0 deletions test/Alpha/Test/View/ViewStateTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<?php

namespace Alpha\Test\View;

use Alpha\View\ViewState;
use Alpha\Util\Config\ConfigProvider;
use Alpha\Util\Http\Session\SessionProviderFactory;

/**
*
* Test cases for the ViewState class.
*
* @since 2.0
* @author John Collins <dev@alphaframework.org>
* @license http://www.opensource.org/licenses/bsd-license.php The BSD License
* @copyright Copyright (c) 2015, John Collins (founder of Alpha Framework).
* All rights reserved.
*
* <pre>
* Redistribution and use in source and binary forms, with or
* without modification, are permitted provided that the
* following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
* * Neither the name of the Alpha Framework nor the names
* of its contributors may be used to endorse or promote
* products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* </pre>
*
*/
class ViewStateTest extends \PHPUnit_Framework_TestCase
{
/**
* {@inheritDoc}
*
* @since 2.0
*/
protected function setUp()
{
$config = ConfigProvider::getInstance();
$config->set('session.provider.name', 'Alpha\Util\Http\Session\SessionProviderArray');
}

/**
* Testing the getInstance method
*
* @since 2.0
*/
public function testGetInstance()
{
$viewState = ViewState::getInstance();

$this->assertTrue($viewState instanceof ViewState, 'Testing the getInstance method');
}

/**
* Testing the get/set methods
*
* @since 2.0
*/
public function testSetGet()
{
$viewState1 = ViewState::getInstance();
$viewState1->set('selectedTab', 'test');

$this->assertEquals('test', $viewState1->get('selectedTab'), 'Testing the get/set methods');

$viewState2 = ViewState::getInstance();

$this->assertEquals('test', $viewState2->get('selectedTab'), 'Testing the get/set methods');
}
}

?>

0 comments on commit 31ddec9

Please sign in to comment.