Alpha Framework alpha--tests
[ class tree: alpha--tests ] [ index: alpha--tests ] [ all elements ]

Source for file Sequence_Test.php

Documentation is available at Sequence_Test.php

  1. <?php
  2.  
  3. /**
  4.  *
  5.  * Test cases for the Sequence data type
  6.  * 
  7.  * @package alpha::tests
  8.  * @since 1.0
  9.  * @author John Collins <dev@alphaframework.org>
  10.  * @version $Id: Sequence_Test.php 1341 2011-03-17 15:02:02Z johnc $
  11.  * @license http://www.opensource.org/licenses/bsd-license.php The BSD License
  12.  * @copyright Copyright (c) 2011, John Collins (founder of Alpha Framework).
  13.  *  All rights reserved.
  14.  * 
  15.  *  <pre>
  16.  *  Redistribution and use in source and binary forms, with or
  17.  *  without modification, are permitted provided that the
  18.  *  following conditions are met:
  19.  * 
  20.  *  * Redistributions of source code must retain the above
  21.  *    copyright notice, this list of conditions and the
  22.  *    following disclaimer.
  23.  *  * Redistributions in binary form must reproduce the above
  24.  *    copyright notice, this list of conditions and the
  25.  *    following disclaimer in the documentation and/or other
  26.  *    materials provided with the distribution.
  27.  *  * Neither the name of the Alpha Framework nor the names
  28.  *    of its contributors may be used to endorse or promote
  29.  *    products derived from this software without specific
  30.  *    prior written permission.
  31.  *   
  32.  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
  33.  *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  34.  *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  35.  *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  36.  *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
  37.  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  38.  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  39.  *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  40.  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  41.  *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  42.  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  43.  *  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  44.  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  45.  *  </pre>
  46.  *  
  47.  */
  48. class Sequence_Test extends PHPUnit_Framework_TestCase {
  49.     /**
  50.      * a Sequence for testing
  51.      * 
  52.      * @var Sequence 
  53.      * @since 1.0
  54.      */
  55.     private $sequence;
  56.     
  57.     /**
  58.      * Called before the test functions will be executed
  59.      * this function is defined in PHPUnit_TestCase and overwritten
  60.      * here
  61.      * 
  62.      * @since 1.0
  63.      */
  64.     protected function setUp({        
  65.         $this->sequence new Sequence();
  66.         $this->sequence->rebuildTable();
  67.         $this->sequence->set('prefix''TEST');
  68.         $this->sequence->set('sequence'1);
  69.         $this->sequence->save();
  70.     }
  71.     
  72.     /** 
  73.      * Called after the test functions are executed
  74.      * this function is defined in PHPUnit_TestCase and overwritten
  75.      * here
  76.      * 
  77.      * @since 1.0
  78.      */    
  79.     protected function tearDown({
  80.         $this->sequence->dropTable();
  81.         unset($this->sequence);
  82.     }
  83.     
  84.     /**
  85.      * Testing to ensure that a bad parameter will cause an IllegalArguementException
  86.      * 
  87.      * @since 1.0
  88.      */
  89.     public function testSetValueBad({
  90.         try {
  91.             $this->sequence->setValue('invalid');
  92.             $this->fail('Testing to ensure that a bad parameter will cause an IllegalArguementException');
  93.         }catch (IllegalArguementException $e{
  94.             $this->assertEquals($this->sequence->getHelper()$e->getMessage()'Testing to ensure that a bad parameter will cause an IllegalArguementException');
  95.         }
  96.     }
  97.     
  98.     /**
  99.      * Testing to ensure that a good parameter will not cause an IllegalArguementException
  100.      * 
  101.      * @since 1.0
  102.      */
  103.     public function testSetValueGood({
  104.         try {
  105.             $this->sequence->setValue('VALID-1');
  106.             $this->assertEquals('VALID'$this->sequence->get('prefix')'Testing to ensure that a good parameter will not cause an IllegalArguementException');
  107.             $this->assertEquals(1$this->sequence->get('sequence')'Testing to ensure that a good parameter will not cause an IllegalArguementException');
  108.         }catch (IllegalArguementException $e{
  109.             $this->fail('Testing to ensure that a good parameter will not cause an IllegalArguementException');
  110.         }
  111.     }
  112.     
  113.     /**
  114.      * Testing that sequence prefixes are uppercase
  115.      * 
  116.      * @since 1.0
  117.      */
  118.     public function testPrefixValidation({
  119.         try {
  120.             $this->sequence->set('prefix''bad');
  121.         }catch (IllegalArguementException $e{
  122.             $this->assertEquals($this->sequence->getPropObject('prefix')->getHelper()$e->getMessage()'Testing that sequence prefixes are uppercase');
  123.         }
  124.     }
  125.     
  126.     /**
  127.      * Testing the setSequenceToNext methid increments the sequence number
  128.      * 
  129.      * @since 1.0
  130.      */
  131.     public function testSetSequenceToNext({
  132.         $this->sequence->setSequenceToNext();
  133.         
  134.         $this->assertEquals('TEST-2'$this->sequence->getValue()'Testing the setSequenceToNext methid increments the sequence number');
  135.     }
  136.     
  137.     /**
  138.      * Testing the toString method
  139.      * 
  140.      * @since 1.0
  141.      */
  142.     public function testToString({
  143.         $this->assertEquals('TEST-1'$this->sequence->__toString()'Testing the toString method');
  144.     }
  145. }

Documentation generated on Thu, 17 Mar 2011 16:44:51 +0000 by phpDocumentor 1.4.3