function testGetValue_FromFormDatasource_ByNameAttribute()
 {
     $form = new lmbMacroFormWidget('my_id');
     $form->setDatasource(array('any_field' => 'wrong_value', 'field_name' => 10));
     $widget = new lmbMacroFormElementWidget('any_field');
     $widget->setAttribute('name', 'field_name');
     $widget->setForm($form);
     $this->assertEqual($widget->getValue(), 10);
 }
 function testGetValue_ReturnValueFieldValues_If_ActualValueIsIterator_WithObjectsOfArrayAccessInterface()
 {
     $form = new lmbMacroFormWidget('my_form');
     $form->setDatasource(array('my_select' => new ArrayIterator(array(new ArrayObject(array('id' => 10, 'my_id' => 50)), new ArrayObject(array('id' => 20, 'my_id' => 100))))));
     $widget = new lmbMacroMultipleSelectWidget('my_select');
     $widget->setAttribute('value_field', 'my_id');
     $widget->setForm($form);
     $this->assertEqual($widget->getValue(), array(50, 100));
 }
 function testGetValue_ReturnValueField_If_ActualValueIsObject_With_ArrayAccess()
 {
     $form = new lmbMacroFormWidget('my_form');
     $form->setDatasource(array('my_select' => new lmbSet(array('id' => 20, 'my_id' => 10))));
     $widget = new lmbMacroSingleSelectWidget('my_select');
     $widget->setAttribute('value_field', 'my_id');
     $widget->setForm($form);
     $this->assertEqual($widget->getValue(), 10);
 }
 function testGetFieldErrorsForField()
 {
     $error_list = new lmbMacroFormErrorList();
     $error_list->addError('message1', array('x' => 'Input1'));
     $error_list->addError('message2', array('x' => 'Input1', 'z' => 'Input2'));
     $form = new lmbMacroFormWidget('my_id');
     $form->setErrorList($error_list);
     $errors = $form->getErrorsListForFields();
     $this->assertEqual(sizeof($errors), 3);
     $errors = $form->getErrorsListForFields('Input1');
     $this->assertEqual($errors[0]['message'], 'message1');
     $this->assertEqual($errors[1]['message'], 'message2');
     $errors = $form->getErrorsListForFields('Input2');
     $this->assertEqual($errors[0]['message'], 'message2');
 }