/**
  * Test successful track enrolment deletion.
  */
 public function test_success()
 {
     global $DB, $USER;
     $this->give_permissions(array('local/elisprogram:track_enrol'));
     // Initialize version1elis importplugin for utility functions.
     $importplugin = rlip_dataplugin_factory::factory('dhimport_version1elis');
     // Create test program and track.
     $datagen = new elis_program_datagenerator($DB);
     $program = $datagen->create_program(array('idnumber' => 'TestProgramForTrack'));
     $track = $datagen->create_track(array('idnumber' => 'TestTrackForProgram', 'curid' => $program->id));
     $userid = $DB->get_field(user::TABLE, 'id', array('username' => 'assigninguser'));
     // Create the track enrolment record to delete.
     $datagen->assign_user_to_track($userid, $track->id);
     $data = array('track_idnumber' => $track->idnumber, 'user_username' => 'assigninguser', 'user_email' => '*****@*****.**');
     $response = local_datahub_elis_track_enrolment_delete::track_enrolment_delete($data);
     $this->assertNotEmpty($response);
     $this->assertInternalType('array', $response);
     $this->assertArrayHasKey('messagecode', $response);
     $this->assertArrayHasKey('message', $response);
     $this->assertEquals(get_string('ws_track_enrolment_delete_success_code', 'local_datahub'), $response['messagecode']);
     $this->assertEquals(get_string('ws_track_enrolment_delete_success_msg', 'local_datahub'), $response['message']);
     $this->assertFalse($DB->record_exists(usertrack::TABLE, array('userid' => $userid, 'trackid' => $track->id)));
 }