function testGetChangesetValue() { $open_value_dao = new MockTracker_FormElement_Field_List_OpenValueDao(); $odar_10 = mock('DataAccessResult'); $odar_10->setReturnValue('getRow', array('id' => '10', 'field_id' => '1', 'label' => 'Open_1')); $odar_20 = mock('DataAccessResult'); $odar_20->setReturnValue('getRow', array('id' => '10', 'field_id' => '1', 'label' => 'Open_2')); $open_value_dao->setReturnReference('searchById', $odar_10, array(1, '10')); $open_value_dao->setReturnReference('searchById', $odar_20, array(1, '20')); $value_dao = new $this->dao_class(); $dar = mock('DataAccessResult'); $dar->setReturnValueAt(0, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => '1000', 'openvalue_id' => null)); $dar->setReturnValueAt(1, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => '1001', 'openvalue_id' => null)); $dar->setReturnValueAt(2, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => null, 'openvalue_id' => '10')); $dar->setReturnValueAt(3, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => null, 'openvalue_id' => '20')); $dar->setReturnValueAt(4, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => '1002', 'openvalue_id' => null)); $dar->setReturnValueAt(5, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => '1000', 'openvalue_id' => null)); //two foreachs $dar->setReturnValueAt(6, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => '1001', 'openvalue_id' => null)); //two foreachs $dar->setReturnValueAt(7, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => null, 'openvalue_id' => '10')); //two foreachs $dar->setReturnValueAt(8, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => null, 'openvalue_id' => '20')); //two foreachs $dar->setReturnValueAt(9, 'current', array('id' => '123', 'field_id' => '1', 'bindvalue_id' => '1002', 'openvalue_id' => null)); //two foreachs $dar->setReturnValue('valid', true); $dar->setReturnValueAt(5, 'valid', false); $dar->setReturnValueAt(11, 'valid', false); $value_dao->setReturnReference('searchById', $dar); $bind = new MockTracker_FormElement_Field_List_Bind_Static(); $bind_values = array(1000 => mock('Tracker_FormElement_Field_List_BindValue'), 1001 => mock('Tracker_FormElement_Field_List_BindValue'), 1002 => mock('Tracker_FormElement_Field_List_BindValue')); $bind->setReturnValue('getBindValues', $bind_values, array(array('1000', '1001', '1002'))); $list_field = new $this->field_class(); $list_field->setReturnValue('getId', 1); $list_field->setReturnReference('getValueDao', $value_dao); $list_field->setReturnReference('getOpenValueDao', $open_value_dao); $list_field->setReturnReference('getBind', $bind); $changeset_value = $list_field->getChangesetValue(null, 123, false); $this->assertIsA($changeset_value, $this->cv_class); $this->assertTrue(is_array($changeset_value->getListValues())); $this->assertEqual(count($changeset_value->getListValues()), 5); $list_values = $changeset_value->getListValues(); $this->assertIsA($list_values[0], 'Tracker_FormElement_Field_List_BindValue'); $this->assertIsA($list_values[1], 'Tracker_FormElement_Field_List_BindValue'); $this->assertIsA($list_values[2], 'Tracker_FormElement_Field_List_OpenValue'); $this->assertIsA($list_values[3], 'Tracker_FormElement_Field_List_OpenValue'); $this->assertIsA($list_values[4], 'Tracker_FormElement_Field_List_BindValue'); }
function testGetFieldData() { $bind = new MockTracker_FormElement_Field_List_Bind(); $bind->setReturnValue('getFieldData', '115', array('existing value', '*')); $bind->setReturnValue('getFieldData', '118', array('yet another existing value', '*')); $bind->setReturnValue('getFieldData', null, array('new value', '*')); $bind->setReturnValue('getFieldData', null, array('yet another new value', '*')); $bind->setReturnValue('getFieldData', null, array('existing open value', '*')); $bind->setReturnValue('getFieldData', null, array('yet another existing open value', '*')); $bind->setReturnValue('getFieldData', null, array('', '*')); $odar = new MockDataAccessResult(); $odar->setReturnValue('getRow', false); $open_value_dao = new MockTracker_FormElement_Field_List_OpenValueDao(); $odar_30 = new MockDataAccessResult(); $odar_30->setReturnValue('getRow', array('id' => '30', 'field_id' => '1', 'label' => 'existing open value')); $odar_40 = new MockDataAccessResult(); $odar_40->setReturnValue('getRow', array('id' => '40', 'field_id' => '1', 'label' => 'yet another existing open value')); $open_value_dao->setReturnReference('searchByExactLabel', $odar_30, array(1, 'existing open value')); $open_value_dao->setReturnReference('searchByExactLabel', $odar_40, array(1, 'yet another existing open value')); $open_value_dao->setReturnReference('searchByExactLabel', $odar, array(1, 'new value')); $open_value_dao->setReturnReference('searchByExactLabel', $odar, array(1, 'yet another new value')); $open_value_dao->setReturnReference('searchByExactLabel', $odar, array(1, '')); $f = new Tracker_FormElement_Field_OpenListTestVersion(); $f->setReturnReference('getOpenValueDao', $open_value_dao); $f->setReturnReference('getBind', $bind); $f->setReturnValue('getId', 1); $this->assertEqual("!new value,!yet another new value", $f->getFieldData('new value,yet another new value', true)); $this->assertEqual("!new value,b115", $f->getFieldData('new value,existing value', true)); $this->assertEqual("!new value,o30,b115", $f->getFieldData('new value,existing open value,existing value', true)); $this->assertNull($f->getFieldData('', true)); }