16 # construct the schema object 19 self::$TestFieldIds = array();
21 # outline fields to be created 22 self::$TestFields = array(
37 foreach (self::$TestFields as $FieldName => $FieldType)
39 $TmpField = $Schema->GetItemByName($FieldName);
40 if ($TmpField === NULL)
42 $TmpField = $Schema->AddField($FieldName, $FieldType);
44 $TmpField->IsTempItem(FALSE);
45 self::$TestFieldIds[$FieldName] = $TmpField->Id();
48 # Resource::Create() expects a user to be logged in, 49 # so log in an admin user 51 $Users = $UFactory->GetUsersWithPrivileges(
52 PRIV_RESOURCEADMIN, PRIV_COLLECTIONADMIN);
53 $UserIds = array_keys($Users);
54 $AdminUserId = array_pop($UserIds);
55 $AdminUser =
new CWUser($AdminUserId);
56 $GLOBALS[
"G_User"]->Login($AdminUser->Name(),
"", TRUE);
65 # construct the schema object 69 # drop all of the test fields 70 foreach (self::$TestFieldIds as $FieldName => $FieldId)
72 $Schema->DropField($FieldId);
74 # remove from OAIFieldMappings too 76 DELETE FROM OAIFieldMappings 77 WHERE SPTFieldId = " . addslashes($FieldId));
87 # Create test-specific objects 89 $TestResource->IsTempResource(FALSE);
91 $TestReferenceResource->IsTempResource(FALSE);
93 self::$TestFieldIds[
'TestTreeField']);
94 $TestControlledName =
new ControlledName(NULL,
"TestControlledName",
95 self::$TestFieldIds[
'TestCNameField']);
97 self::$TestFieldIds[
'TestOptionField']);
99 # Test get and set for each field 100 foreach (self::$TestFieldIds as $FieldName => $FieldId)
104 # whether, before testing equivalence, we need to pop the 105 # returned value out of an array 106 $BeforeTestArrayShift = FALSE;
108 # if we're testing the object return, this is the object we'll compare it to. 111 switch ($Field->Type())
114 $TgtVal =
"A test title";
118 $TgtVal =
"http://testtesttest.com";
122 $TgtVal =
"I am a test paragraph.";
134 $TgtVal = date(
"Y-m-d");
135 $TestObject =
new Date(strval($TgtVal));
136 $TestObjectType =
'Date';
137 $TestFunctionName =
'BeginDate';
138 $TestFunctionArguments = NULL;
142 $TgtVal = date(
"Y-m-d H:i:s", strtotime($TgtVal));
147 $TgtVal[$TestClassification->Id()] =
"TestClassification";
148 $TestObject = $TestClassification;
149 $TestObjectType =
'Classification';
150 $TestFunctionName =
'FullName';
151 $TestFunctionArguments = NULL;
152 $BeforeTestArrayShift = TRUE;
157 $TgtVal[$TestControlledName->Id()] =
"TestControlledName";
158 $TestObject = $TestControlledName;
159 $TestObjectType =
'ControlledName';
160 $TestFunctionName =
'Name';
161 $TestFunctionArguments = NULL;
162 $BeforeTestArrayShift = TRUE;
167 $TgtVal[$TestOptionCName->Id()] =
"TestOptionCName";
168 $TestObject = $TestOptionCName;
169 $TestObjectType =
'ControlledName';
170 $TestFunctionName =
'Name';
171 $TestFunctionArguments = NULL;
172 $BeforeTestArrayShift = TRUE;
176 $TestObject =
new CWUser(1);
177 $TgtVal = array( 1 => $TestObject->Name() );
178 $TestObjectType =
'CWUser';
179 $TestFunctionName =
'Id';
180 $TestFunctionArguments = NULL;
181 $BeforeTestArrayShift = TRUE;
191 $TestObject = $TestReferenceResource;
193 $TgtVal[$TestReferenceResource->Id()] = $TestReferenceResource->Id();
194 $TestFunctionName =
'Id';
195 $TestObjectType =
'Resource';
196 $TestFunctionArguments = NULL;
197 $BeforeTestArrayShift = TRUE;
201 throw new Exception(
"Data type not handled.");
206 # set the value on the test resource 207 $TestResource->Set($Field, $TgtVal);
209 # assert the default get returns the expected value 210 $this->assertEquals($TgtVal, $TestResource->Get($Field));
212 if (isset($TestObject))
214 $ReturnedObject = $TestResource->Get($Field, TRUE);
216 if ($BeforeTestArrayShift)
218 $ReturnedObject = array_shift($ReturnedObject);
221 $array_for_test_object = array($TestObject, $TestFunctionName);
222 $array_for_returned_object = array($ReturnedObject, $TestFunctionName);
224 $this->assertEquals(call_user_func(
225 $array_for_returned_object, $TestFunctionArguments),
226 call_user_func($array_for_test_object, $TestFunctionArguments));
228 $this->assertInstanceOf($TestObjectType, $ReturnedObject);
231 # clear the value from the field 232 $TestResource->Clear($Field);
234 switch ($Field->Type())
261 throw new Exception(
"Data type not handled.");
266 $this->assertEquals($TgtVal, $TestResource->Get($Field));
269 # Clean up function-specific objects. 270 $TestResource->Delete();
271 $TestReferenceResource->Delete();
272 $TestClassification->Delete();
273 $TestControlledName->Delete();
274 $TestOptionCName->Delete();
static tearDownAfterClass()
After to running the tests, this function is run.
SQL database abstraction object with smart query caching.
static Create($Name, $FieldId, $ParentId=NULL)
Add new classification to the hierarchy.
Metadata type representing non-hierarchical controlled vocabulary values.
static setUpBeforeClass()
Prior to running any of the tests, this function is run.
CWIS-specific user factory class.
static Create($SchemaId)
Create a new resource.
CWIS-specific user class.
testGetSetClear()
This function exercises the Resource get and set methods for each Metadata types using the fields cre...