[ 'You must fill in the name field.', 'Your name must only be letters.', ], 'username' => [ 'Your username is required.', 'Your username must be alphanumeric (with dashes and underscores permitted)' ], 'password' => [ 'Your password must be greater than 6 characters.' ] ]; public function setUp() { $this->mb = new MessageBag($this->messages); } public function testMessageBagContainsCorrectKeys() { $keys = $this->mb->keys(); $this->assertContains('name', $keys); $this->assertContains('username', $keys); $this->assertContains('password', $keys); } public function testFirstErrorForFieldExists() { $this->assertEquals( $this->mb->first('name'), $this->messages['name'][0] ); } public function testAllErrorsForFieldExist() { $this->assertEquals( $this->mb->get('name'), $this->messages['name'] ); } public function testAllErrorsExist() { $flatMessages = iterator_to_array(new RecursiveIteratorIterator( new RecursiveArrayIterator($this->messages) ), false); $this->assertEquals($flatMessages, $this->mb->all()); } public function testMessageBagHasError() { $this->assertTrue($this->mb->has('name')); $this->assertTrue($this->mb->has('username')); $this->assertTrue($this->mb->has('password')); } }