Example #1
0
 /**
  * test recordToParams() method
  *
  * @test
  */
 public function recordToParams()
 {
     $this->generateComponent();
     $record = ['User' => ['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**']];
     // No map
     $result = $this->Api->recordToParams($record);
     $this->assertSame([], $result);
     // Normal
     $this->Api->recordMap = ['User' => ['id', 'name', 'email']];
     $result = $this->Api->recordToParams($record);
     $this->assertSame(['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**'], $result);
     // Wrap
     $this->Api->recordMap['User']['_wrap'] = 'user';
     $result = $this->Api->recordToParams($record);
     $this->assertSame(['user' => ['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**']], $result);
     // Alias
     $this->Api->recordMap = ['User' => ['id' => 'user_id', 'name' => 'user_name', 'email' => 'user_email']];
     $result = $this->Api->recordToParams($record);
     $this->assertSame(['user_id' => 1, 'user_name' => 'hiromi', 'user_email' => '*****@*****.**'], $result);
     // Array map(assumes hasAndBelongsToMany)
     $this->Api->recordMap = ['User' => ['id', 'name', 'email'], 'Like' => ['likes' => []]];
     $record = ['User' => ['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**'], 'Like' => [['id' => 1, 'toy_id' => 4], ['id' => 2, 'toy_id' => 5], ['id' => 3, 'toy_id' => 6]]];
     $result = $this->Api->recordToParams($record);
     $this->assertSame(['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**', 'likes' => [['id' => 1, 'toy_id' => 4], ['id' => 2, 'toy_id' => 5], ['id' => 3, 'toy_id' => 6]]], $result);
     // Array map with field(assumes hasMany)
     $this->Api->recordMap['Like'] = ['likes' => ['toy_id']];
     $result = $this->Api->recordToParams($record);
     $this->assertSame(['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**', 'likes' => [4, 5, 6]], $result);
 }