public function UnitsWebTestCase::testCrud in Units of Measurement 7
Same name and namespace in other branches
- 7.2 units.test \UnitsWebTestCase::testCrud()
Conduct testing of CRUD operations.
To be specific, the following gets tested:
- loading measure by its ID
- loading measure by its machine name
- saving measure (upon update of machine name, underlying units measure must be updated)
- deleting measure (underlying units must be deleted)
- loading unit by its ID
- loading unit by its machine name
- loading multiple units by their measure
- saving unit
- deleting unit
File
- ./
units.test, line 44 - Tests for Units module.
Class
- UnitsWebTestCase
- @file Tests for Units module.
Code
public function testCrud() {
$measure = new Entity(array(
'label' => $this
->randomName(),
'measure' => 'test_measure',
'converter' => 'linear',
), 'units_measure');
$measure
->save();
$load = units_measure_load($measure->mid);
$this
->assertEqualMeasure($load, $measure, 'Successfully loaded measure by its ID.');
$load = units_measure_machine_name_load($measure->measure);
$this
->assertEqualMeasure($load, $measure, 'Successfully loaded measure by its machine name.');
$unit = new Entity(array(
'label' => $this
->randomName(),
'measure' => $measure->measure,
'machine_name' => 'test_unit',
'symbol' => $this
->randomName(2),
'factor' => 1,
), 'units_unit');
$unit
->save();
$measure->label = $this
->randomName();
$measure->measure = 'updated_test_measure';
$measure
->save();
$load = units_measure_machine_name_load($measure->measure);
$this
->assertEqualMeasure($load, $measure, 'Successfully updated measure.');
$load = units_unit_load($unit->umid);
$this
->assertEqual($load->measure, $measure->measure, 'Updating machine name of a measure, updates the measure of all underlying units.');
units_measure_delete($measure);
$select = db_select('units_measure');
$select
->addExpression('COUNT(1)', 'count');
$this
->assertEqual($select
->execute()
->fetchField(), 0, 'Successfully removed measure.');
$select = db_select('units_unit');
$select
->addExpression('COUNT(1)', 'count');
$this
->assertEqual($select
->execute()
->fetchField(), 0, 'Removing measure removes all underlying units.');
$measure = new Entity(array(
'label' => $this
->randomName(),
'measure' => 'test_measure',
'converter' => 'linear',
), 'units_measure');
$measure
->save();
$unit1 = new Entity(array(
'label' => $this
->randomName(),
'measure' => $measure->measure,
'machine_name' => 'test_unit1',
'symbol' => $this
->randomName(2),
'factor' => 1,
), 'units_unit');
$unit1
->save();
$load = units_unit_load($unit1->umid);
$this
->assertEqualUnit($load, $unit1, 'Successfully loaded unit by its ID.');
$load = units_unit_machine_name_load($unit1->machine_name);
$this
->assertEqualUnit($load, $unit1, 'Successfully loaded unit by its machine name.');
$unit2 = new Entity(array(
'label' => $this
->randomName(),
'measure' => $measure->measure,
'machine_name' => 'test_unit2',
'symbol' => $this
->randomName(2),
'factor' => 100,
), 'units_unit');
$unit2
->save();
$load = units_unit_by_measure_load_multiple($measure);
$this
->assertEqualUnit(array_shift($load), $unit1, 'Successfully loaded units by their measure.');
$this
->assertEqualUnit(array_shift($load), $unit2, 'Successfully loaded units by their measure.');
$unit1->label = $this
->randomName();
$unit1->symbol = $this
->randomName(3);
$unit1->factor = 2;
$unit1->machine_name = 'updated_test_unit1';
$unit1
->save();
$load = units_unit_load($unit1->umid);
$this
->assertEqualUnit($load, $unit1, 'Successfully updated unit.');
units_unit_delete($unit1);
$select = db_select('units_unit');
$select
->addExpression('COUNT(1)', 'count');
$select
->condition('umid', $unit1->umid);
$this
->assertEqual($select
->execute()
->fetchField(), 0, 'Successfully removed unit.');
}