[pLog-svn] r3809 - plog/trunk/class/test/tests/config

Oscar Renalias oscar at renalias.net
Wed Jul 26 13:53:07 GMT 2006


I wrote it all myself :-)

The thinking part took much longer than actually implementing it (if  
you notice, all methods are the same except the key and the value  
being tested) I just didn't want to mess around with the main  
configuration file, so creating a temporary one was the solution.

If you can think of any other case, please go ahead and add it...

On 26 Jul 2006, at 16:18, Jon Daley wrote:

> 	Did you copy this from somewhere, or did you just write it from  
> scratch?  Impressive if it was from scratch.  It looks good, and I  
> thought there might be a single quote problem.
>
> On Wed, 26 Jul 2006, oscar at devel.lifetype.net wrote:
>
>> Author: oscar
>> Date: 2006-07-26 12:01:11 +0000 (Wed, 26 Jul 2006)
>> New Revision: 3809
>>
>> Added:
>>   plog/trunk/class/test/tests/config/configfilestorage_test.class.php
>> Log:
>> Added some basic test case for ConfigFileStorage
>>
>>
>> Added: plog/trunk/class/test/tests/config/ 
>> configfilestorage_test.class.php
>> ===================================================================
>> --- plog/trunk/class/test/tests/config/ 
>> configfilestorage_test.class.php	2006-07-26 07:32:16 UTC (rev 3808)
>> +++ plog/trunk/class/test/tests/config/ 
>> configfilestorage_test.class.php	2006-07-26 12:01:11 UTC (rev 3809)
>> @@ -0,0 +1,164 @@
>> +<?php
>> +
>> +	include_once( PLOG_CLASS_PATH."class/test/helpers/ 
>> lifetypetestcase.class.php" );
>> +	include_once( PLOG_CLASS_PATH."class/config/ 
>> configfilestorage.class.php" );
>> +
>> +	/**
>> +	 * \ingroup Tests
>> +	 *
>> +	 * Test cases for the ConfigFileStorage class.
>> +	 *
>> +	 * It includes regression test for svn revisions 3768 and 3799
>> +	 */
>> +	class ConfigFileStorage_Test extends LifeTypeTestCase
>> +	{
>> +		/**
>> +		 * Creates a temporary test configuration file using both  
>> single quotes
>> +		 * and double quotes
>> +		 */
>> +		function setUp()
>> +		{
>> +			include_once( PLOG_CLASS_PATH."class/config/config.class.php" );
>> +
>> +
>> +			$config =& Config::getConfig();
>> +			$tmpFolder = $config->getValue( "temp_folder" );
>> +
>> +			$this->file1 = str_replace( "\\", "/", PLOG_CLASS_PATH ). 
>> $tmpFolder."/file1.properties.php";
>> +
>> +			// create the first file
>> +            $data1 = '<?php
>> +            #
>> +            # this is one comment
>> +            #
>> +            $config[\'test_key_1\'] = \'\';
>> +            $config[\'test_key_2\'] = \'some value\';
>> +			#
>> +			# this is
>> +			# another
>> +			# comment
>> +			#
>> +			$config["test_key_3"] = "value for test_key_3";
>> +			#
>> +			# an empty value
>> +			#
>> +			$config[\'test_empty_key\'] = \'\';
>> +            ?>';
>> +
>> +            $this->createFile( $this->file1, $data1 );
>> +		}
>> +
>> +		/**
>> +		 * delete the temporary file that was created
>> +		 */
>> +		function tearDown()
>> +		{
>> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
>> +			File::delete( $this->file1 );
>> +		}
>> +
>> +		/**
>> +		 * @private
>> +		 */
>> +		function createFile( $file, $data )
>> +		{
>> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
>> +            $file = new File( $file );
>> +            $writable = $file->open( 'w' );
>> +            if ($writable) {
>> +                $file->write( $data );
>> +                $file->close();
>> +                return true;
>> +            }
>> +            else {
>> +                return false;
>> +            }
>> +		}
>> +
>> +		/**
>> +		 * Check if the file was loaded properly and loads a value from  
>> a line
>> +		 * with single quotes
>> +		 */
>> +		function testGetSingleQuotesValue()
>> +		{
>> +			// open and load the file
>> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
>> +
>> +			$this->assertEquals( "some value", $cf->getValue( "test_key_2" ),
>> +			                     "Error loading test_key_2 key from file ". 
>> $this->file1 );
>> +		}
>> +
>> +		/**
>> +		 * Check if the file was loaded properly and loads a value from  
>> a line
>> +		 * with double quotes
>> +		 */
>> +		function testGetDoubleQuotesValue()
>> +		{
>> +			// open and load the file
>> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
>> +
>> +			$this->assertEquals( "value for test_key_3", $cf->getValue 
>> ( "test_key_3" ),
>> +			                     "Error loading test_key_3 key from file ". 
>> $this->file1 );
>> +		}
>> +
>> +		/**
>> +		 * test whether new values are kept properly after loading the  
>> file
>> +		 */
>> +		function testSetNewValue()
>> +		{
>> +			// open and load the file
>> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
>> +
>> +			// add a new key
>> +			$newValue = "This is the value for test_key_new";
>> +			$newKey = "test_key_new";
>> +			$cf->setValue( $newKey, $newValue );
>> +
>> +			$this->assertEquals( $newValue, $cf->getValue( $newKey ),  
>> "Error fetching $newKey" );
>> +		}
>> +
>> +		/**
>> +		 * test whether new values for keys defined with single quotes  
>> are saved properly back to the file
>> +		 */
>> +		function testSaveValue()
>> +		{
>> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
>> +
>> +			// open and load the file
>> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
>> +
>> +			// and save a new one
>> +			$newValue = "This is the value for test_empty_key";
>> +			$newKey = "test_empty_key";
>> +			$cf->setValue( $newKey, $newValue );
>> +			$cf->save();
>> +
>> +			// reopen and load the file
>> +			$cf2 = new ConfigFileStorage( Array( "file" => $this->file1 ));
>> +			$this->assertEquals( $newValue, $cf2->getValue( $newKey ),
>> +			                     "$newKey was not saved properly to file ". 
>> $this->file1 );
>> +		}
>> +
>> +		/**
>> +		 * test whether new values for keys defined with double quotes  
>> are saved properly back to the file
>> +		 */
>> +		function testSaveDoubleQuotesValue()
>> +		{
>> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
>> +
>> +			// open and load the file
>> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
>> +
>> +			// and save a new one
>> +			$newValue = "This is the value for test_key_3";
>> +			$newKey = "test_key_3";
>> +			$cf->setValue( $newKey, $newValue );
>> +			$cf->save();
>> +
>> +			// reopen and load the file
>> +			$cf2 = new ConfigFileStorage( Array( "file" => $this->file1 ));
>> +			$this->assertEquals( $newValue, $cf2->getValue( $newKey ),
>> +			                     "$newKey was not saved properly to file ". 
>> $this->file1 );
>> +		}
>> +	}
>> +?>
>> \ No newline at end of file
>>
>> _______________________________________________
>> pLog-svn mailing list
>> pLog-svn at devel.lifetype.net
>> http://devel.lifetype.net/mailman/listinfo/plog-svn
>>
>
> -- 
> Jon Daley
> http://jon.limedaley.com/
>
> Eagles may soar, but weasels don't get sucked into jet engines.
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.lifetype.net/mailman/listinfo/plog-svn
>



More information about the pLog-svn mailing list