updateBodiesRundaily = new UpdateBodiesRundaily(); } public function testIsEnabled_enabledTomorrow() { global $setup; $setup['EventDateStart'] = date("d.m.Y", strtotime("tomorrow")); $this->assertTrue($this->updateBodiesRundaily->isEnabled()); } public function testIsEnabled_disabledYesterday() { global $setup; $setup['EventDateStart'] = date("d.m.Y", strtotime("yesterday")); $this->assertFalse($this->updateBodiesRundaily->isEnabled()); } public function testIsEnabled_disabledToday() { global $setup; $setup['EventDateStart'] = date("d.m.Y"); $this->assertFalse($this->updateBodiesRundaily->isEnabled()); } public function testRun_updated() { $data = $this->insertBodyAachen(); $data['countrycode'] = "D"; $data['bodystatus'] = "CA"; $this->getDB()->insert("bodies", $data, false); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertEquals("DE", $body['countrycode']); $this->assertEquals("A", $body['bodystatus']); $this->updateBodiesRundaily->run(); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertEquals("D", $body['countrycode']); $this->assertEquals("CA", $body['bodystatus']); $this->assertContains("Updated AAC (AEGEE-Aachen)", implode("\n", $this->updateBodiesRundaily->getMessages())); $this->assertContains("bodystatus: A ==> CA", implode("\n", $this->updateBodiesRundaily->getMessages())); $this->assertContains("countrycode: DE ==> D", implode("\n", $this->updateBodiesRundaily->getMessages())); } public function testRun_noChanges() { $data = $this->insertBodyAachen(); $this->getDB()->insert("bodies", $data, false); $this->updateBodiesRundaily->run(); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertEquals("DE", $body['countrycode']); $this->assertEquals("A", $body['bodystatus']); $this->assertEquals("", implode("\n", $this->updateBodiesRundaily->getMessages())); } public function testRun_new() { $data = $this->getBodyAachen(); $this->getDB()->insert("bodies", $data, false); $this->updateBodiesRundaily->run(); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertEquals("DE", $body['countrycode']); $this->assertEquals("A", $body['bodystatus']); $this->assertContains("Successfully inserted AAC (AEGEE-Aachen)", implode("\n", $this->updateBodiesRundaily->getMessages())); $this->assertContains("bodystatus: A", implode("\n", $this->updateBodiesRundaily->getMessages())); $this->assertContains("countrycode: DE", implode("\n", $this->updateBodiesRundaily->getMessages())); } public function testRun_deletedNoApplications() { $this->insertABBodyEnschede(); $data = $this->insertBodyAachen(); $this->updateBodiesRundaily->run(); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertNull($body); $this->assertContains("Successfully deleted AAC (AEGEE-Aachen)", implode("\n", $this->updateBodiesRundaily->getMessages())); } public function testRun_deletedWithApplications() { $this->insertABBodyEnschede(); $data = $this->insertBodyAachen(); $data = array(); $data['bodycode'] = "AAC"; $this->getDB()->insert("applications", $data, false); $this->updateBodiesRundaily->run(); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertEquals("D", $body['bodystatus']); $this->assertContains("Deleted body (AEGEE-Aachen)", $body['bodyname']); $this->assertContains("Deactivated AAC (AEGEE-Aachen)", implode("\n", $this->updateBodiesRundaily->getMessages())); } public function testRun_deletedTwiceWithApplications() { $this->insertABBodyEnschede(); $data = $this->insertBodyAachen(); $data = array(); $data['bodycode'] = "AAC"; $this->getDB()->insert("applications", $data, false); $this->updateBodiesRundaily->run(); $this->updateBodiesRundaily->run(); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertEquals("D", $body['bodystatus']); $this->assertContains("Deleted body (AEGEE-Aachen)", $body['bodyname']); $this->assertEquals(1, substr_count($body['bodyname'], "Deleted body")); } public function testRun_invalidEmail() { $data = $this->getBodyAachen(); $data['email'] = "invalid@doesnotexist.aegee.org"; $this->getDB()->insert("bodies", $data, false); $this->updateBodiesRundaily->run(); $body = $this->getDB()->fetchRow("ab_bodies", "AAC", "bodycode"); $this->assertEquals("DE", $body['countrycode']); $this->assertEquals("A", $body['bodystatus']); $this->assertEquals($data['email'], $body['email']); $this->assertContains("- email: " . $data['email'] . "\n", implode("\n", $this->updateBodiesRundaily->getMessages())); } private function insertABBodyEnschede() { $this->getDB()->insert("bodies", $this->getBodyEnschede(), false); } } ?>