MDL-32149 some more cleanup and testing of PHPUnit asserts

This commit is contained in:
Petr Skoda
2012-04-03 22:30:56 +02:00
parent 1cbf2a20ca
commit 7ddef99455
4 changed files with 93 additions and 14 deletions
+85 -3
View File
@@ -47,12 +47,94 @@ class core_phpunit_basic_testcase extends basic_testcase {
$this->assertEquals($CFG->prefix, $CFG->phpunit_prefix);
}
/*
public function test_borked_tests() {
global $DB;
/**
* This is just a verification if I understand the PHPUnit assert docs right --skodak
* @return void
*/
public function test_assert_behaviour() {
// arrays
$a = array('a', 'b', 'c');
$b = array('a', 'c', 'b');
$c = array('a', 'b', 'c');
$d = array('a', 'b', 'C');
$this->assertNotEquals($a, $b);
$this->assertNotEquals($a, $d);
$this->assertEquals($a, $c);
$this->assertEquals($a, $b, '', 0, 10, true);
// objects
$a = new stdClass();
$a->x = 'x';
$a->y = 'y';
$b = new stdClass(); // switched order
$b->y = 'y';
$b->x = 'x';
$c = $a;
$d = new stdClass();
$d->x = 'x';
$d->y = 'y';
$d->z = 'z';
$this->assertEquals($a, $b);
$this->assertNotSame($a, $b);
$this->assertEquals($a, $c);
$this->assertSame($a, $c);
$this->assertNotEquals($a, $d);
// string comparison
$this->assertEquals(1, '1');
$this->assertEquals(null, '');
$this->assertNotEquals(1, '1 ');
$this->assertNotEquals(0, '');
$this->assertNotEquals(null, '0');
$this->assertNotEquals(array(), '');
// other comparison
$this->assertEquals(null, null);
$this->assertEquals(false, null);
$this->assertEquals(0, null);
// emptiness
$this->assertEmpty(0);
$this->assertEmpty(0.0);
$this->assertEmpty('');
$this->assertEmpty('0');
$this->assertEmpty(false);
$this->assertEmpty(null);
$this->assertEmpty(array());
$this->assertNotEmpty(1);
$this->assertNotEmpty(0.1);
$this->assertNotEmpty(-1);
$this->assertNotEmpty(' ');
$this->assertNotEmpty('0 ');
$this->assertNotEmpty(true);
$this->assertNotEmpty(array(null));
$this->assertNotEmpty(new stdClass());
}
// Uncomment following tests to see logging of unexpected changes in global state and database
/*
public function test_db_modification() {
global $DB;
$DB->set_field('user', 'confirmed', 1, array('id'=>-1));
}
public function test_cfg_modification() {
global $CFG;
$CFG->xx = 'yy';
unset($CFG->admin);
$CFG->rolesactive = 0;
}
public function test_user_modification() {
global $USER;
$USER->id = 10;
}
public function test_course_modification() {
global $COURSE;
$COURSE->id = 10;
}
*/
}