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

Source for file Timestamp_Test.php

Documentation is available at Timestamp_Test.php

  1. <?php
  2.  
  3. /**
  4.  *
  5.  * Test case for the Timestamp data type
  6.  * 
  7.  * @package alpha::tests
  8.  * @since 1.0
  9.  * @author John Collins <dev@alphaframework.org>
  10.  * @version $Id: Timestamp_Test.php 1453 2011-12-04 15:12:54Z 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 Timestamp_Test extends PHPUnit_Framework_TestCase {
  49.     /**
  50.      * An Timestamp for testing
  51.      * 
  52.      * @var Timestamp 
  53.      * @since 1.0
  54.      */
  55.     private $timestamp1;    
  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.         global $config;
  66.         
  67.         $config->set('sysDefaultDateTime''now');
  68.         $this->timestamp1 new Timestamp();        
  69.     }
  70.     
  71.     /** 
  72.      * Called after the test functions are executed
  73.      * this function is defined in PHPUnit_TestCase and overwritten
  74.      * here
  75.      * 
  76.      * @since 1.0
  77.      */    
  78.     protected function tearDown({        
  79.         unset($this->timestamp1);        
  80.     }
  81.     
  82.     /**
  83.      * Testing the constructor has set the Timestamp to today by default
  84.      * 
  85.      * @since 1.0
  86.      */
  87.     public function testDefaultTimestampValue({
  88.         $this->assertEquals(date("Y-m-d H:i:s")$this->timestamp1->getValue()"testing the constructor has set the Timestamp to now by default");
  89.     }
  90.     
  91.     /**
  92.      * Testing the setValue method
  93.      * 
  94.      * @since 1.0
  95.      */
  96.     public function testSetValuePass({
  97.         $this->timestamp1->setTimestampValue(20001123335);
  98.         
  99.         $this->assertEquals("2000-01-01 23:33:05"$this->timestamp1->getValue()"testing the setValue method");
  100.     }
  101.     
  102.     /**
  103.      * Testing the setValue method with a bad month
  104.      * 
  105.      * @since 1.0
  106.      */
  107.     public function testSetValueInvalidMonth({
  108.         try {        
  109.             $this->timestamp1->setTimestampValue(2000'blah'1000);
  110.             $this->fail("testing the setValue method with a bad month");
  111.         }catch (AlphaException $e{
  112.             $this->assertEquals('The month value blah provided is invalid!'
  113.                 $e->getMessage()
  114.                 "testing the setValue method with a bad month");
  115.         }        
  116.     }
  117.     
  118.     /**
  119.      * Testing the setValue method with a bad timestamp value (out of range)
  120.      * 
  121.      * @since 1.0
  122.      */
  123.     public function testSetValueInvalidValue({
  124.         try {        
  125.             $this->timestamp1->setTimestampValue(2000131000);
  126.             $this->fail("testing the setValue method with a bad timestamp value (out of range)");
  127.         }catch (AlphaException $e{
  128.             $this->assertEquals('The day value 2000-13-1 provided is invalid!'
  129.                 $e->getMessage()
  130.                 "testing the setValue method with a bad timestamp value (out of range)");
  131.         }        
  132.     }
  133.     
  134.     /**
  135.      * Testing the populate_from_string method
  136.      * 
  137.      * @since 1.0
  138.      */
  139.     public function testPopulateFromString({
  140.         $this->timestamp1->populateFromString("2007-08-13 23:44:07");
  141.         
  142.         $this->assertEquals("2007-08-13 23:44:07"$this->timestamp1->getValue()"testing the populateFromString method");
  143.     }
  144.     
  145.     /**
  146.      * Testing that the validation will cause an invalid timestamp to fail on the constructor
  147.      * 
  148.      * @since 1.0
  149.      */
  150.     public function testValidationOnConstructor({
  151.         try {
  152.             $timestamp new Timestamp("blah");
  153.             $this->fail("testing that the validation will cause an invalid timestamp to fail on the constructor");        
  154.         }catch (AlphaException $e{
  155.             $this->assertTrue(true"testing that the validation will cause an invalid timestamp to fail on the constructor");
  156.         }
  157.     }
  158.     
  159.     /**
  160.      * Testing the get_euro_value method for converting to European timestamp format
  161.      * 
  162.      * @since 1.0
  163.      */
  164.     public function testGetEuroValue({
  165.         $this->assertEquals(date("d/m/y")$this->timestamp1->getEuroValue()"testing the get_euro_value method for converting to European timestamp format");
  166.     }
  167.     
  168.     /**
  169.      * Testing the getWeekday() method when the default constructor is used
  170.      * 
  171.      * @since 1.0
  172.      */
  173.     public function testGetWeekday({
  174.         $this->assertEquals(date('l')$this->timestamp1->getWeekday()"testing the getWeekday() method when the default constructor is used");
  175.     }
  176. }
  177.  
  178. ?>

Documentation generated on Tue, 13 Dec 2011 20:27:44 +0000 by phpDocumentor 1.4.3