public function testGetStateWithFieldValidationErrors()
 {
     $fields = new FieldList(new TextField('Title'));
     $actions = new FieldList();
     $validator = new RequiredFields('Title');
     $form = new Form(new Controller(), 'TestForm', $fields, $actions, $validator);
     $form->loadDataFrom(['Title' => 'My Title']);
     $validator->validationError('Title', 'Title is invalid', 'error');
     $formSchema = new FormSchema();
     $expected = ['id' => 'TestForm', 'fields' => [['id' => 'Form_TestForm_Title', 'value' => 'My Title', 'messages' => [['value' => 'Title is invalid', 'type' => 'error']], 'valid' => false, 'data' => []], ['id' => 'Form_TestForm_SecurityID', 'value' => $form->getSecurityToken()->getValue(), 'messages' => [], 'valid' => true, 'data' => []]], 'messages' => []];
     $state = $formSchema->getState($form);
     $this->assertInternalType('array', $state);
     $this->assertJsonStringEqualsJsonString(json_encode($expected), json_encode($state));
 }
 public function testGetSchemaStateWithFormValidation()
 {
     $field = new FormField('MyField');
     $validator = new RequiredFields('MyField');
     $form = new Form(new Controller(), 'TestForm', new FieldList($field), new FieldList(), $validator);
     $validator->validationError('MyField', 'Something is wrong', 'error');
     $schema = $field->getSchemaState();
     $this->assertEquals(count($schema['messages']), 1);
     $this->assertEquals('Something is wrong', $schema['messages'][0]['value']);
 }