diff options
Diffstat (limited to 'tests/unit/Data/SqlMap/PropertyAccessTest.php')
-rw-r--r-- | tests/unit/Data/SqlMap/PropertyAccessTest.php | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/unit/Data/SqlMap/PropertyAccessTest.php b/tests/unit/Data/SqlMap/PropertyAccessTest.php new file mode 100644 index 00000000..eb8306d5 --- /dev/null +++ b/tests/unit/Data/SqlMap/PropertyAccessTest.php @@ -0,0 +1,75 @@ +<?php + +require_once(dirname(__FILE__).'/BaseCase.php'); + +/** + * @package System.Data.SqlMap + */ +class PropertyAccessTest extends BaseCase +{ + function testGetPublicProperty() + { + $account = new AccountBis(); + + $account->Id = 10; + $account->FirstName = "Luky"; + $account->LastName = "Luke"; + $account->EmailAddress = "luly.luke@somewhere.com"; + + $two = new AccountBis(); + $two->Id = 12; + $two->FirstName = "Mini Me!"; + $account->More = $two; + + $account6 = $this->NewAccount6(); + $two->More = $account6; + + $this->assertIdentical(10, TPropertyAccess::get($account, 'Id')); + $this->assertIdentical(12, TPropertyAccess::get($account, 'More.Id')); + $this->assertIdentical(6, TPropertyAccess::get($account, 'More.More.Id')); + } + + function testSetPublicProperty() + { + $account = new AccountBis(); + + $account->Id = 10; + $account->FirstName = "Luky"; + $account->LastName = "Luke"; + $account->EmailAddress = "luly.luke@somewhere.com"; + + $two = new AccountBis(); + $two->Id = 12; + $two->FirstName = "Mini Me!"; + TPropertyAccess::set($account, 'More', $two); + + $account6 = $this->NewAccount6(); + TPropertyAccess::set($account, 'More.More', $account6); + + TPropertyAccess::set($account, 'More.More.EmailAddress', 'hahaha'); + + $this->assertIdentical(10, TPropertyAccess::get($account, 'Id')); + $this->assertIdentical(12, TPropertyAccess::get($account, 'More.Id')); + $this->assertIdentical(6, TPropertyAccess::get($account, 'More.More.Id')); + + $this->assertIdentical('hahaha', + TPropertyAccess::get($account, 'More.More.EmailAddress')); + } + + function testArrayAccessProperty() + { + $account = new AccountBis(); + $things['more'] = 1; + $things['accounts'] = $this->NewAccount6(); + $account->More = $things; + + $this->assertIdentical(6, TPropertyAccess::get($account, 'More.accounts.ID')); + + TPropertyAccess::set($account, 'More.accounts.EmailAddress', 'adssd'); + $this->assertIdentical('adssd', TPropertyAccess::get($account, 'More.accounts.EmailAddress')); + + $this->assertIdentical(1, TPropertyAccess::get($things, 'more')); + } + +} + |