Login   Register  
PHP Classes
elePHPant
Icontem

File: PublicWrap.test.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Ninsuo  >  PHP Public Wrap  >  PublicWrap.test.php  >  Download  
File: PublicWrap.test.php
Role: Unit test script
Content type: text/plain
Description: PHPUnit tests
Class: PHP Public Wrap
Access an object private variables and functions
Author: By
Last change:
Date: 2013-05-22 11:02
Size: 4,381 bytes
 

Contents

Class file image Download
<?php

require("PublicWrap.php");

/**
 * Test Case for PublicWrap
 *
 * Requires PHPUnit (developped using 3.6.12)
 */
class PublicWrapTest extends PHPUnit_Framework_TestCase
{

    private 
$stuff;

    public function 
setUp()
    {
        
$this->stuff = new PublicWrap(new Something());
    }

    public function 
testAccessPublicProperty()
    {
        
$this->stuff->10;
        
$this->assertEquals(10$this->stuff->a);
    }

    public function 
testAccessProtectedProperty()
    {
        
$this->stuff->19;
        
$this->assertEquals(19$this->stuff->b);
    }

    public function 
testAccessPrivateProperty()
    {
        
$this->stuff->24;
        
$this->assertEquals(24$this->stuff->c);
    }

    public function 
testAccessPublicStaticProperty()
    {
        
$this->stuff->31;
        
$this->assertEquals(31$this->stuff->d);
    }

    public function 
testAccessProtectedStaticProperty()
    {
        
$this->stuff->42;
        
$this->assertEquals(42$this->stuff->e);
    }

    public function 
testAccessPrivateStaticProperty()
    {
        
$this->stuff->5;
        
$this->assertEquals(5$this->stuff->f);
    }

    public function 
testAccessPublicMethod()
    {
        
$this->assertEquals("g...\n"$this->stuff->g());
    }

    public function 
testAccessProtectedMethod()
    {
        
$this->assertEquals("h...\n"$this->stuff->h());
    }

    public function 
testAccessPrivateMethod()
    {
        
$this->assertEquals("i...\n"$this->stuff->i());
    }

    public function 
testAccessPublicStaticMethod()
    {
        
$this->assertEquals("j...\n"$this->stuff->j());
    }

    public function 
testAccessProtectedStaticMethod()
    {
        
$this->assertEquals("k...\n"$this->stuff->k());
    }

    public function 
testAccessPrivateStaticMethod()
    {
        
$this->assertEquals("l...\n"$this->stuff->l());
    }

    public function 
testBadConstructorArgument()
    {
        try
        {
            
$this->stuff = new PublicWrap("Hello, world!");
        }
        catch (\
Exception $e)
        {
            
$expected "PublicWrap::__construct: first argument expected to be an object.";
            
$this->assertEquals($expected$e->getMessage());
            return;
        }
        
$this->fail("Expected exception, but never raised.");
    }

    public function 
testGetPropertyDoesNotExists()
    {
        try
        {
            
$this->stuff->hello;
        }
        catch (\
Exception $e)
        {
            
$expected "PublicWrap::__get: hello property does not exist in Something class.";
            
$this->assertEquals($expected$e->getMessage());
            return;
        }
        
$this->fail("Expected exception, but never raised.");
    }

    public function 
testSetPropertyDoesNotExists()
    {
        try
        {
            
$this->stuff->hello 42;
        }
        catch (\
Exception $e)
        {
            
$expected "PublicWrap::__set: hello property does not exist in Something class.";
            
$this->assertEquals($expected$e->getMessage());
            return;
        }
        
$this->fail("Expected exception, but never raised.");
    }

    public function 
testMethodDoesNotExists()
    {
        try
        {
            
$this->stuff->hello();
        }
        catch (\
Exception $e)
        {
            
$expected "PublicWrap::__call: hello method does not exist in Something class.";
            
$this->assertEquals($expected$e->getMessage());
            return;
        }
        
$this->fail("Expected exception, but never raised.");
    }

}

class 
Something
{

    public 
$a "a...\n";
    protected 
$b "b...\n";
    private 
$c "c...\n";
    static public 
$d "d...\n";
    static protected 
$e "e...\n";
    static private 
$f "f...\n";

    public function 
g()
    {
        return 
"g...\n";
    }

    protected function 
h()
    {
        return 
"h...\n";
    }

    private function 
i()
    {
        return 
"i...\n";
    }

    static public function 
j()
    {
        return 
"j...\n";
    }

    static protected function 
k()
    {
        return 
"k...\n";
    }

    static private function 
l()
    {
        return 
"l...\n";
    }

}