/** * Test method for deleteWorkshifts(). */ public function testDeleteWorkshifts() { // Parameter is not an array try { Workshift::deleteWorkshifts(null); $this->fail("null parameter allowed"); } catch (WorkshiftException $e) { $this->assertEquals(WorkshiftException::INVALID_PARAMETER, $e->getCode()); } try { Workshift::deleteWorkshifts(2); $this->fail("integer parameter allowed"); } catch (WorkshiftException $e) { $this->assertEquals(WorkshiftException::INVALID_PARAMETER, $e->getCode()); } // Empty array $idArray = array(); try { Workshift::deleteWorkshifts($idArray); $this->fail("Empty array allowed"); } catch (WorkshiftException $e) { $this->assertEquals(WorkshiftException::INVALID_PARAMETER, $e->getCode()); } // array contains invalid ids $idArray = array(1, 2, -1, 4); try { Workshift::deleteWorkshifts($idArray); $this->fail("Invalid id's allowed"); } catch (WorkshiftException $e) { $this->assertEquals(WorkshiftException::INVALID_ID, $e->getCode()); } $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('1' , 'Work shift 1', '5')")); $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('2' , 'Work shift 2', '5')")); $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('3' , 'Work shift 3', '5')")); $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('4' , 'Work shift 4', '5')")); // array contains id's not in database $idArray = array(1, 2, 23); Workshift::deleteWorkshifts($idArray); $this->assertEquals(2, $this->_countRows(Workshift::WORKSHIFT_TABLE)); $this->assertEquals(2, $this->_countRows(Workshift::WORKSHIFT_TABLE, "workshift_id IN (3, 4)")); $this->assertTrue(mysql_query("TRUNCATE TABLE `hs_hr_workshift`", $this->connection)); $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('1' , 'Work shift 1', '5')")); $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('2' , 'Work shift 2', '5')")); $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('3' , 'Work shift 3', '5')")); $this->assertTrue(mysql_query("INSERT INTO " . Workshift::WORKSHIFT_TABLE . " VALUES ('4' , 'Work shift 4', '5')")); // array contains valid ids $idArray = array(1, 2, 3); Workshift::deleteWorkshifts($idArray); $this->assertEquals(1, $this->_countRows(Workshift::WORKSHIFT_TABLE)); $row = $this->_getWorkshift(4); $this->assertNotNull($row); $this->assertEquals("Work shift 4", $row['name']); $this->assertEquals(5, $row['hours_per_day']); }