// do i need to put a limit on what this number can be? if (empty($requestObject->trailSubmissionType) === true) { throw new InvalidArgumentException("submission type cannot be null"); } if (empty($requestObject->trailTerrain) === true) { $requestObject->trailTerrain = null; } if (empty($requestObject->trailUse) === true) { $requestObject->trailUse = null; } if (empty($requestObject->trailUuid) === true) { $requestObject->trailUuid = null; } if ($method === "PUT") { verifyXsrf(); $trail = Trail::getTrailById($pdo, $id); if ($trail === null) { throw new RuntimeException("trail does not exist", 404); } $trail = new Trail($id, $requestObject->userId, $trail->getBrowser(), $trail->getCreateDate(), $trail->getIpAddress(), $requestObject->submitTrailId, $requestObject->trailAmenities, $requestObject->trailCondition, $requestObject->trailDescription, $requestObject->trailDifficulty, $requestObject->trailDistance, $requestObject->trailName, $requestObject->trailSubmissionType, $requestObject->trailTerrain, $requestObject->trailTraffic, $requestObject->trailUse, $requestObject->trailUuid); $trail->update($pdo); $reply->message = "trail updated okay"; } if ($method === "POST") { verifyXsrf(); //preform the actual post/do i need to treat foreign keys in any special manner $trail = new Trail(null, $requestObject->userId, $_SERVER["HTTP_USER_AGENT"], new DateTime(), $_SERVER["REMOTE_ADDR"], $requestObject->submitTrailId, $requestObject->trailAmenities, $requestObject->trailCondition, $requestObject->trailDescription, $requestObject->trailDifficulty, $requestObject->trailDistance, $requestObject->trailName, $requestObject->trailSubmissionType, $requestObject->trailTerrain, $requestObject->trailTraffic, $requestObject->trailUse, $requestObject->trailUuid); $trail->insert($pdo); $reply->message = "trail submitted okay"; } }
/** * test creating a Trail and then deleting it * **/ public function testDeleteValidTrail() { //count the number of rows and save it for later $numRows = $this->getConnection()->getRowCount("trail"); //create a new trail and insert it into mySQL $trail = new Trail(null, $this->user->getUserId(), $this->VALID_BROWSER, $this->VALID_CREATEDATE, $this->VALID_IPADDRESS, $this->VALID_SUBMITTRAILID, $this->VALID_TRAILAMENITIES, $this->VALID_TRAILCONDITIION, $this->VALID_TRAILDESCRIPTION, $this->VALID_TRAILDIFFICULTY, $this->VALID_TRAILDISTANCE, $this->VALID_TRAILNAME, $this->VALID_TRAILSUBMISSIONTYPE, $this->VALID_TRAILTERRAIN, $this->VALID_TRAILTRAFFIC, $this->VALID_TRAILUSE, $this->VALID_TRAILUUID); $trail->insert($this->getPDO()); //delete the trail from mySQL $this->assertSame($numRows + 1, $this->getConnection()->getRowCount("trail")); $trail->delete($this->getPDO()); //grab the data from mySQL and enforce the fields match our expectations $pdoTrail = Trail::getTrailById($this->getPDO(), $trail->getTrailId()); $this->assertNull($pdoTrail); $this->assertSame($numRows, $this->getConnection()->getRowCount("trail")); }