/**
  * Test automatic entity provider setting
  *
  * @return void
  */
 public function testValidatorEntityProvider()
 {
     $row = new Article(['title' => 'Test entity', 'body' => 'Something new']);
     $context = new EntityContext($this->request, ['entity' => $row, 'table' => 'Articles']);
     $context->isRequired('title');
     $articles = TableRegistry::get('Articles');
     $this->assertSame($row, $articles->validator()->provider('entity'));
     $row = new Article(['title' => 'First post', 'user' => new Entity(['username' => 'mark', 'fname' => 'Mark', 'articles' => [new Article(['title' => 'First post']), new Article(['title' => 'Second post'])]])]);
     $context = new EntityContext($this->request, ['entity' => $row, 'table' => 'Articles']);
     $validator = $articles->validator();
     $context->isRequired('user.articles.0.title');
     $this->assertSame($row->user->articles[0], $validator->provider('entity'));
     $context->isRequired('user.articles.1.title');
     $this->assertSame($row->user->articles[1], $validator->provider('entity'));
     $context->isRequired('title');
     $this->assertSame($row, $validator->provider('entity'));
 }
 /**
  * Test the fieldnames method.
  *
  * @return void
  */
 public function testFieldNames()
 {
     $context = new EntityContext($this->request, ['entity' => new Entity(), 'table' => 'Articles']);
     $articles = TableRegistry::get('Articles');
     $this->assertEquals($articles->schema()->columns(), $context->fieldNames());
 }