/** * Test getNextAssignmentToDo() * @return void */ public function testgetNextAssignmentToDo() { // File handle used for debugging messages. // Insert 3 new tA lessons into database for a fictitious new student. // Need boundary tests & bad assignments and one good assignment. // Run several tests to see that the correct lesson is returned. // First test should be simple with one zero time assigned and // the other 150% assigned. $this->testbuildArray(); // Reset myArray to origninal values. $classInstance = new tutor\src\classes\AssignmentsClass(); $tempStudent591 = 'abcdefg'; // Next insure no previous lessons for this student. $numRows = $classInstance->delRowsByStudentId($tempStudent591); $this->assertTrue($numRows === 0); // Any number greater than 0 would indicate a clean-up failure in // another function. $this->myArray['tA_S_ID'] = $tempStudent591; $lastLessonId = ''; // Test 1 Check for no lessons to do because no student exists. $result = $classInstance->getNextAssignmentToDo($tempStudent591, $lastLessonId); //$log_file = fopen("/var/www/html/jimfuqua/tutor/logs/ACT_testgetNextAssignmentToDo.log", "w"); //$v = var_export($result, true); //$string = __LINE__.' testgetNextAssignmentToDo = '.$result."\n\n"; //fwrite($log_file, $string); $this->assertTrue($result === 'error'); // Test 2 Create a class instance with one lesson and test count // to see if it just has one lesson. $result = $classInstance->delRowsByStudentId($tempStudent591); // Start with none. $this->assertTrue($result === 0); $classInstance->insertRecord($this->myArray); $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); // $log_file = fopen("/var/www/html/jimfuqua/tutor/logs/testgetNextAssignmentToDo.log", "w"); // $v = var_export($result, true); // $string = __LINE__.' AC $result = '.$v."\n"; // fwrite($log_file, $string); $numRows = count($result); $v = var_export($numRows, true); // $string = __LINE__.' AC $numRows = '.$v."\n"; // fwrite($log_file, $string); $this->assertTrue($numRows === 1); $lastLessonId = ''; $result = $classInstance->getNextAssignmentToDo($tempStudent591, $lastLessonId); $numRows = count($result); $v = var_export($numRows, true); // $string = __LINE__.' AC $numRows = '.$v."\n"; // fwrite($log_file, $string); $this->assertTrue($numRows === 24); // Test 3 add an identical lesson and test for number of lessons = 2. $classInstance->insertRecord($this->myArray); $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $this->assertTrue($numRows === 2); // Test 4 Delete all lessons and add one specific lesson back. // Test that it is returned. $result = $classInstance->delRowsByStudentId($tempStudent591); // Start with none. $this->myArray['tG_AssignmentName'] = 'fffff'; $classInstance->insertRecord($this->myArray); // Add a record. $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $this->assertTrue($numRows === 1); // Get it back. $lastLessonId = ''; $result = $classInstance->getNextAssignmentToDo($tempStudent591, $lastLessonId); $this->assertTrue(is_array($result)); $this->assertTrue(count($result) === 24); // Returns FALSE only if there are no lessons. $this->assertTrue(is_array($result)); $this->assertTrue($result['tG_AssignmentName'] == 'fffff'); $this->assertTrue($result['tA_S_ID'] === $tempStudent591); $result = $classInstance->delRowsByStudentId($tempStudent591); // Insure no previous lessons for this student. $this->assertTrue($result === 1); // Any number greater than 1 would indicate a clean-up failure. $this->testbuildArray(); // Reset myArray to original values. unset($classInstance); // Test 5 // Delete all lessons and add two lessons one with 0 time assigned // and the other with 150% assigned. // Test for return of one with greater time assigned. // First delete all lessons for $tempStudent591. unset($classInstance); $this->testbuildArray(); // Reset myArray. $tempStudent591 = 'abcdefg'; $classInstance = new tutor\src\classes\AssignmentsClass(); $this->myArray['tA_S_ID'] = $tempStudent591; $classInstance->delRowsByStudentId($tempStudent591); // Insure no previous lessons for this student. $this->myArray['tA_PercentTime'] = '150'; $this->myArray['tG_AssignmentName'] = 'klm'; $classInstance->insertRecord($this->myArray); $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $this->assertTrue($numRows === 1); // Now add another row with 0 % time. $this->myArray['tA_PercentTime'] = '0'; $this->myArray['tG_AssignmentName'] = 'nop'; $classInstance->insertRecord($this->myArray); $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $this->assertTrue($numRows === 2); $result = $classInstance->getNextAssignmentToDo($tempStudent591, $lastLessonId); $this->assertTrue(is_array($result)); $this->assertTrue(count($result) === 24); // Returns FALSE only if there are no lessons. $this->assertTrue($result['tG_AssignmentName'] === 'klm'); // Clean Up. unset($classInstance); // Reset myArray to origninal values. $this->testbuildArray(); // Test 6 // Delete all lessons and add two lessons one with 0 time assigned and // the other with 150% assigned in reverse order of previous test.. // Test for return of one with greater time assigned. // First delete all lessons for $tempStudent591. unset($classInstance); $this->testbuildArray(); // Reset myArray. $tempStudent591 = 'abcdefg'; $classInstance = new tutor\src\classes\AssignmentsClass(); $this->myArray['tA_S_ID'] = $tempStudent591; // Insure no previous lessons for this student. $classInstance->delRowsByStudentId($tempStudent591); $this->myArray['tA_PercentTime'] = '0'; $this->myArray['tG_AssignmentName'] = 'klm'; $classInstance->insertRecord($this->myArray); $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $this->assertTrue($numRows === 1); // Now add another row with 0 % time. $this->myArray['tA_PercentTime'] = '150'; $this->myArray['tG_AssignmentName'] = 'klm'; $classInstance->insertRecord($this->myArray); $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $this->assertTrue($numRows === 2); $lastLessonId = ''; $result = $classInstance->getNextAssignmentToDo($tempStudent591, $lastLessonId); $this->assertTrue(is_array($result)); $this->assertTrue(count($result) === 24); // Returns FALSE only if there are no lessons. $this->assertTrue($result['tG_AssignmentName'] === 'klm'); // Clean Up. unset($classInstance); // Reset myArray to origninal values. $this->testbuildArray(); // Test 7 Add three new lessons and check frequency of return. $this->testbuildArray(); // Reset myArray. $tempStudent591 = 'asdfg hjkl'; $this->myArray['tA_S_ID'] = $tempStudent591; $classInstance = new tutor\src\classes\AssignmentsClass(); $classInstance->delRowsByStudentId($tempStudent591); // Previous line insures no previous lessons for this student. $this->myArray['tG_AssignmentName'] = 'aaaaa'; $this->myArray['tA_PercentTime'] = '33'; $result = $classInstance->insertRecord($this->myArray); // Add a record. $this->assertTrue($result === 1); // This is a post date time. $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $this->assertTrue(is_array($result)); // Look our for post date issues. $numRows = count($result); $this->assertTrue($numRows === 1); $this->myArray['tG_AssignmentName'] = 'bbbbb'; $this->myArray['tA_PercentTime'] = '33'; $classInstance->insertRecord($this->myArray); // Add a record. $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $this->assertTrue($numRows === 2); $this->myArray['tG_AssignmentName'] = 'ccccc'; $this->myArray['tA_PercentTime'] = '33'; $classInstance->insertRecord($this->myArray); // Add a record. $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $this->assertTrue(count($result) === 3); // Now get back a bunch of lessons and check frequency of return // against assigned values. $totalAaaaa = 0; $totalBbbbb = 0; $totalCcccc = 0; $count = 0; for ($i = 1; $i <= 100; $i++) { // Run through 100 selections and see if they follow % assigned. $classInstance = new tutor\src\classes\AssignmentsClass(); $result = $classInstance->getCurrentStudentAssignmentsInAnArray($tempStudent591); $numRows = count($result); $count++; if ($numRows > 0) { foreach ($result as $key => $value) { // Is an array of arrays. if ($value['tG_AssignmentName'] === 'aaaaa') { $totalAaaaa++; } if ($value['tG_AssignmentName'] === 'bbbbb') { $totalBbbbb++; } if ($value['tG_AssignmentName'] === 'accccc') { $totalCccccc++; } } } } //end for $classInstance->delRowsByStudentId($tempStudent591); // Next reset myArray to origninal values. $this->testbuildArray(); // Clean Up. $classInstance->delRowsByStudentId($this->myArray['tA_S_ID']); $classInstance->delRowsByStudentId('abcdefg'); unset($classInstance); }
$last_lesson_id = $_data['lesson_id']; } else { $last_lesson_id = ''; } // START NEW session with the existing relevant data. $v = var_export($_data, TRUE); $string = "\n" . __LINE__ . ' $_data = ' . $v . "\n\n"; fwrite($log_file, $string . "\n"); $_SESSION = $_data; $v = var_export($_SESSION, TRUE); $string = "\n" . __LINE__ . ' $_SESSION = ' . $v . "\n\n"; fwrite($log_file, $string . "\n"); // Get next assignment to do from the login data. $next_lesson = new tutor\src\classes\AssignmentsClass(); // Return a single lesson as a tAssignments row. $lesson = $next_lesson->getNextAssignmentToDo($_data['tA_S_ID'], $last_lesson_id); $v = var_export($lesson, TRUE); $string = "\n" . __LINE__ . ' $lesson = ' . $v . "\n\n"; fwrite($log_file, $string . "\n"); // Assign the lessons variables to the $_SESSION variable. // $next_lesson->setSessionVariablesFromLesson($lesson); // From the assignment name retrieve the generic assignment and assign // its variables to the $_SESSION variable. console . log('116'); require_once '../src/classes/GenericAClass.inc'; console . error(message); console . log('118'); $my_next_ga = new tutor\src\classes\GenericAClass(); $my_next_ga->setSessionVariablesFromTGAssignmentName($lesson['tG_AssignmentName']); fwrite($log_file, __LINE__ . ' microtime(TRUE) = ' . microtime(TRUE) . "\n\n"); $v = var_export($_SESSION, TRUE);