/**
  * Tests the surveillance report configuration CRUD
  *
  * @return void
  */
 public function testifSurveillanceConfigWorks()
 {
     echo "\n\nREPORT CONTROLLER TEST\n\n";
     // add, edit and delete surveillance entry
     Input::replace($this->inputSurveillance);
     $surveillance = new ReportController();
     $surveillance->surveillanceConfig();
     $surveillanceModel = ReportDisease::all();
     //Check if entry was added
     $this->assertEquals($surveillanceModel[2]->test_type_id, $this->inputSurveillance['new-surveillance']['1']['test-type']);
     $this->assertEquals($surveillanceModel[2]->disease_id, $this->inputSurveillance['new-surveillance']['1']['disease']);
     //Check if entry was edited
     $this->assertEquals($surveillanceModel[1]->disease_id, $this->inputSurveillance['surveillance']['2']['disease']);
     //Check if entry was deleted - the only available are three => one deleted, one added, one left as is, and one edited
     $this->assertEquals(count($surveillanceModel), 3);
 }
예제 #2
0
 /**
  * Manage Surveillance Configurations
  * @param
  */
 public function surveillanceConfig()
 {
     $allSurveillanceIds = array();
     //edit or leave surveillance entries as is
     if (Input::get('surveillance')) {
         $diseases = Input::get('surveillance');
         foreach ($diseases as $id => $disease) {
             $allSurveillanceIds[] = $id;
             $surveillance = ReportDisease::find($id);
             $surveillance->test_type_id = $disease['test-type'];
             $surveillance->disease_id = $disease['disease'];
             $surveillance->save();
         }
     }
     //save new surveillance entries
     if (Input::get('new-surveillance')) {
         $diseases = Input::get('new-surveillance');
         foreach ($diseases as $id => $disease) {
             $surveillance = new ReportDisease();
             $surveillance->test_type_id = $disease['test-type'];
             $surveillance->disease_id = $disease['disease'];
             $surveillance->save();
             $allSurveillanceIds[] = $surveillance->id;
         }
     }
     //check if action is from a form submission
     if (Input::get('from-form')) {
         // Delete any pre-existing surveillance entries
         //that were not captured in any of the above save loops
         $allSurveillances = ReportDisease::all(array('id'));
         $deleteSurveillances = array();
         //Identify survillance entries to be deleted by Ids
         foreach ($allSurveillances as $key => $value) {
             if (!in_array($value->id, $allSurveillanceIds)) {
                 $deleteSurveillances[] = $value->id;
             }
         }
         //Delete Surveillance entry if any
         if (count($deleteSurveillances) > 0) {
             ReportDisease::destroy($deleteSurveillances);
         }
     }
     $diseaseTests = ReportDisease::all();
     return View::make('reportconfig.surveillance')->with('diseaseTests', $diseaseTests);
 }