Skip to content

Commit

Permalink
Removing unittesting of implementation details
Browse files Browse the repository at this point in the history
  • Loading branch information
mudrd8mz committed Jan 4, 2010
1 parent 7a0ae47 commit 7f0666a
Showing 1 changed file with 4 additions and 173 deletions.
177 changes: 4 additions & 173 deletions mod/workshop/grading/accumulative/simpletest/teststrategy.php
Expand Up @@ -32,15 +32,7 @@
* Test subclass that makes all the protected methods we want to test public
*/
class testable_workshop_accumulative_strategy extends workshop_accumulative_strategy {
public function _cook_dimension_records(array $raw) {
return parent::_cook_dimension_records($raw);
}
public function _cook_edit_form_data(stdClass $raw) {
return parent::_cook_edit_form_data($raw);
}
public function _cook_assessment_form_data(stdClass $assessment, stdClass $raw) {
return parent::_cook_assessment_form_data($assessment, $raw);
}

}

class workshop_accumulative_strategy_test extends UnitTestCase {
Expand All @@ -51,181 +43,20 @@ class workshop_accumulative_strategy_test extends UnitTestCase {
/** instance of the strategy logic class being tested */
protected $strategy;

/** this emulates dimensions data returned by get_data() of a submitted strategy edit form */
protected $rawform;

/** this emulates dimensions data stored in database to be loaded into strategy edit form */
protected $rawdb;

/** setup testing environment */
/**
* Setup testing environment
*/
public function setUp() {
$cm = (object)array('id' => 3);
$course = (object)array('id' => 11);
$workshop = (object)array('id' => 42, 'strategy' => 'accumulative');
$this->workshop = new workshop($workshop, $cm, $course);
$this->strategy = new testable_workshop_accumulative_strategy($this->workshop);

// emulate a form with 5 dimensions. The first three are already in DB, the forth is new and the
// fifth is left empty
$this->rawform = new stdClass;
$this->rawform->workshopid = 42;
$this->rawform->strategy = 'accumulative';
$this->rawform->norepeats = 5;
$this->rawform->dimensionid__idx_0 = 3;
$this->rawform->dimensionid__idx_1 = 2;
$this->rawform->dimensionid__idx_2 = 1;
$this->rawform->dimensionid__idx_3 = 0;
$this->rawform->dimensionid__idx_4 = 0;
$this->rawform->description__idx_0_editor = array('text' => 'First', 'format' =>1, 'itemid' => 123456789);
$this->rawform->description__idx_1_editor = array('text' => 'Second', 'format' =>1, 'itemid' => 123456788);
$this->rawform->description__idx_2_editor = array('text' => 'Third', 'format' =>1, 'itemid' => 123456787);
$this->rawform->description__idx_3_editor = array('text' => 'Forth', 'format' =>1, 'itemid' => 123456786);
$this->rawform->description__idx_4_editor = array('text' => '', 'format' =>1, 'itemid' => 123456785);
$this->rawform->grade__idx_0 = 10;
$this->rawform->grade__idx_1 = 5;
$this->rawform->grade__idx_2 = 5;
$this->rawform->grade__idx_3 = 2;
$this->rawform->grade__idx_4 = 10;
$this->rawform->weight__idx_0 = 1;
$this->rawform->weight__idx_1 = 1;
$this->rawform->weight__idx_2 = 2;
$this->rawform->weight__idx_3 = 2;
$this->rawform->weight__idx_4 = 1;

// emulate two assessment dimensions being stored in database
$this->rawdb = array();
$this->rawdb[3] = new stdClass;
$this->rawdb[3]->id = 3;
$this->rawdb[3]->workshopid = 42;
$this->rawdb[3]->sort = 1;
$this->rawdb[3]->description = 'First';
$this->rawdb[3]->descriptionformat = 1;
$this->rawdb[3]->grade = 20;
$this->rawdb[3]->weight = 16;

$this->rawdb[7] = new stdClass;
$this->rawdb[7]->id = 7;
$this->rawdb[7]->workshopid = 42;
$this->rawdb[7]->sort = 2;
$this->rawdb[7]->description = 'Second';
$this->rawdb[7]->descriptionformat = 1;
$this->rawdb[7]->grade = 10;
$this->rawdb[7]->weight = 1;

// emulate the filled assessment form
$this->rawass->nodims = 5;
$this->rawass->strategyname = 'accumulative';
$this->rawass->dimensionid__idx_0 = 3;
$this->rawass->grade__idx_0 = 10;
$this->rawass->peercomment__idx_0 = 'Great';
$this->rawass->dimensionid__idx_1 = 2;
$this->rawass->grade__idx_1 = 4;
$this->rawass->peercomment__idx_1 = 'Hmm';
$this->rawass->dimensionid__idx_2 = 1;
$this->rawass->grade__idx_2 = 1;
$this->rawass->peercomment__idx_2 = 'Uch';
$this->rawass->dimensionid__idx_3 = 4;
$this->rawass->grade__idx_3 = 0;
$this->rawass->peercomment__idx_3 = 'Grrr';
$this->rawass->dimensionid__idx_4 = 5;
$this->rawass->grade__idx_4 = 7;
$this->rawass->peercomment__idx_4 = 'Bye';
}

public function tearDown() {
$this->workshop = null;
$this->strategy = null;
$this->rawform = null;
$this->rawdb = null;
}

public function test_cook_dimension_records() {
// excersise SUT
$cooked = $this->strategy->_cook_dimension_records($this->rawdb);
// verify
$this->assertIsA($cooked, 'stdClass');

$this->assertEqual($cooked->dimensionid__idx_0, 3);
$this->assertEqual($cooked->description__idx_0, 'First');
$this->assertEqual($cooked->descriptionformat__idx_0, 1);
$this->assertEqual($cooked->grade__idx_0, 20);
$this->assertEqual($cooked->weight__idx_0, 16);

$this->assertEqual($cooked->dimensionid__idx_1, 7);
$this->assertEqual($cooked->description__idx_1, 'Second');
$this->assertEqual($cooked->descriptionformat__idx_1, 1);
$this->assertEqual($cooked->grade__idx_1, 10);
$this->assertEqual($cooked->weight__idx_1, 1);
}

public function test_cook_edit_form_data() {

$cooked = $this->strategy->_cook_edit_form_data($this->rawform);
$this->assertIsA($cooked, 'Array');
$this->assertEqual(count($cooked), 5);
$this->assertEqual($cooked[2], (object)array(
'id' => 1,
'workshopid' => 42,
'sort' => 3,
'description' => 'Third',
'descriptionformat' => 1,
'grade' => 5,
'weight' => 2,
));
$this->assertEqual($cooked[3], (object)array(
'id' => 0,
'workshopid' => 42,
'sort' => 4,
'description' => 'Forth',
'descriptionformat' => 1,
'grade' => 2,
'weight' => 2,
));
$this->assertEqual($cooked[4], (object)array(
'id' => 0,
'workshopid' => 42,
'sort' => 5,
'description' => '',
'descriptionformat' => 1,
'grade' => 10,
'weight' => 1,
));
}

public function test__cook_assessment_form_data() {
// fixture set-up
$assessment = new stdClass();
$assessment->id = 90;

// exercise SUT
$cooked = $this->strategy->_cook_assessment_form_data($assessment, $this->rawass);

// verify
$this->assertIsA($cooked, 'Array');
$this->assertEqual(count($cooked), 5);
$this->assertEqual($cooked[0], (object)array(
'assessmentid' => 90,
'strategy' => 'accumulative',
'dimensionid' => 3,
'grade' => 10,
'peercomment' => 'Great',
'peercommentformat' => FORMAT_HTML,
));
$this->assertEqual($cooked[2], (object)array(
'assessmentid' => 90,
'strategy' => 'accumulative',
'dimensionid' => 1,
'grade' => 1,
'peercomment' => 'Uch',
'peercommentformat' => FORMAT_HTML,
));
$this->assertEqual($cooked[3], (object)array(
'assessmentid' => 90,
'strategy' => 'accumulative',
'dimensionid' => 4,
'grade' => 0,
'peercomment' => 'Grrr',
'peercommentformat' => FORMAT_HTML,
));
}
}

0 comments on commit 7f0666a

Please sign in to comment.