Permalink
Browse files

FIX Use array_intersect() with expected values so that the order matc…

…hes.

The values in $values aren't returned in any order, so this test can randomly fail. This
changes the check from expected = $values to $values \cap expected = $value. PHP's array_intersect
maintains the keys of the first array, so order is preserved. The intersect also guarentees that the
only accepted values are the expected ones.
  • Loading branch information...
1 parent f1c021f commit cd61b61a848915a967680b3265070ab30ab3d365 @simonwelsh simonwelsh committed Aug 23, 2012
Showing with 1 addition and 1 deletion.
  1. +1 −1 tests/model/DataObjectTest.php
@@ -863,7 +863,7 @@ function testTwoSubclassesWithTheSameFieldNameWork() {
// Check that the values of those fields are properly read from the database
$values = DataObject::get("DataObjectTest_Team", "\"DataObjectTest_Team\".\"ID\" IN
($obj1->ID, $obj2->ID)")->column("SubclassDatabaseField");
- $this->assertEquals(array('obj1', 'obj2'), $values);
+ $this->assertEquals(array_intersect($values, array('obj1', 'obj2')), $values);
}
function testClassNameSetForNewObjects() {

0 comments on commit cd61b61

Please sign in to comment.