| 
<?php
 namespace DelTesting\Form\Field;
 
 use Codeception\TestCase\Test;
 use Del\Form\Field\Radio;
 use Del\Form\Field\Text;
 use Del\Form\Form;
 use Del\Form\Renderer\Field\RadioRender;
 
 /**
 * User: delboy1978uk
 * Date: 05/12/2016
 * Time: 02:27
 */
 class RadioTest extends Test
 {
 public function testRadio()
 {
 $form = new Form('radiotest');
 $radio = new Radio('choose');
 $radio->setLabel('Choose');
 $radio->setOptions([
 'hello' => 'Choose',
 ]);
 $form->addField($radio);
 $html = $form->render();
 $this->assertEquals('<form name="radiotest" method="post" id="radiotest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><div class="radio"><label for=""><input type="radio" name="choose" value="hello">Choose</label></div></div></form>'."\n", $html);
 }
 
 
 public function testMultipleRadiosInGroup()
 {
 $form = new Form('radiotest');
 $radio = new Radio('choose');
 $radio->setLabel('Choose');
 $radio->setOptions([
 'hello' => 'Choose',
 'goodbye' => 'Something',
 ]);
 $form->addField($radio);
 $html = $form->render();
 $this->assertEquals('<form name="radiotest" method="post" id="radiotest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><div class="radio"><label for=""><input type="radio" name="choose" value="hello">Choose</label></div><div class="radio"><label for=""><input type="radio" name="choose" value="goodbye">Something</label></div></div></form>'."\n", $html);
 }
 
 public function testMultipleRadiosInHorizontalForm()
 {
 $form = new Form('radiotest');
 $radio = new Radio('choose');
 $radio->setLabel('Choose');
 $radio->setOptions([
 'hello' => 'Choose',
 'goodbye' => 'Something',
 ]);
 $form->addField($radio);
 $html = $form->render();
 $this->assertEquals('<form name="radiotest" method="post" id="radiotest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><div class="radio"><label for=""><input type="radio" name="choose" value="hello">Choose</label></div><div class="radio"><label for=""><input type="radio" name="choose" value="goodbye">Something</label></div></div></form>'."\n", $html);
 }
 
 public function testRequiredField()
 {
 $form = new Form('required-text-form');
 $text = new Radio('text');
 $text->setRequired(true);
 $form->addField($text);
 $this->assertFalse($form->isValid());
 $text->setValue(['something']);
 $this->assertTrue($form->isValid());
 }
 
 public function testRendererThrowsException()
 {
 $form = new Form('checkboxtest');
 $text = new Text('bang');
 $text->setRenderer(new RadioRender());
 $form->addField($text);
 $this->expectException('InvalidArgumentException');
 $form->render();
 }
 
 public function testRendererThrowsExceptionWithNoOptions()
 {
 $form = new Form('checkboxtest');
 $checkbox = new Radio('choose');
 $checkbox->setLabel('Choose');
 $checkbox->setRenderInline(true);
 $form->addField($checkbox);
 $this->expectException('LogicException');
 $form->render();
 }
 
 public function testRendererInline()
 {
 $form = new Form('checkboxtest');
 $checkbox = new Radio('choose');
 $checkbox->setLabel('Choose');
 $checkbox->setRenderInline(true);
 $checkbox->setOptions([
 1 => 'hello',
 2 => 'hello',
 3 => 'hello',
 ]);
 $checkbox->setValue(3);
 $form->addField($checkbox);
 $html = $form->render();
 $this->assertEquals('<form name="checkboxtest" method="post" id="checkboxtest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><label for="" class="radio-inline"><input type="radio" name="choose" value="1">hello</label><label for="" class="radio-inline"><input type="radio" name="choose" value="2">hello</label><label for="" class="radio-inline"><input type="radio" name="choose" value="3" checked>hello</label></div></form>'."\n", $html);
 }
 }
 |