/** * 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); }
/** * 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); }