[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