예제 #1
0
 public static function addProblemToContest($problemData, $contestData)
 {
     // Create an empty request
     $r = new Request();
     // Log in as contest director
     $r['auth_token'] = OmegaupTestCase::login($contestData['director']);
     // Build request
     $r['contest_alias'] = $contestData['request']['alias'];
     $r['problem_alias'] = $problemData['request']['alias'];
     $r['points'] = 100;
     $r['order_in_contest'] = 1;
     // Call API
     $response = ContestController::apiAddProblem($r);
     // Clean up
     unset($_REQUEST);
 }
예제 #2
0
 /**
  * Add too many problems to a contest.
  */
 public function testAddTooManyProblemsToContest()
 {
     // Get a contest
     $contestData = ContestsFactory::createContest();
     $auth_token = $this->login($contestData["director"]);
     for ($i = 0; $i < MAX_PROBLEMS_IN_CONTEST + 1; $i++) {
         // Get a problem
         $problemData = ProblemsFactory::createProblemWithAuthor($contestData['director']);
         // Build request
         $r = new Request(array("auth_token" => $auth_token, "contest_alias" => $contestData["contest"]->alias, "problem_alias" => $problemData["request"]["alias"], "points" => 100, "order_in_contest" => $i + 1));
         try {
             // Call API
             $response = ContestController::apiAddProblem($r);
             $this->assertLessThan(MAX_PROBLEMS_IN_CONTEST, $i);
             // Validate
             $this->assertEquals("ok", $response["status"]);
             self::assertProblemAddedToContest($problemData, $contestData, $r);
         } catch (ApiException $e) {
             $this->assertEquals($e->getMessage(), "contestAddproblemTooManyProblems");
             $this->assertEquals($i, MAX_PROBLEMS_IN_CONTEST);
         }
     }
 }