Example #1
0
 /**
  * test paramsToRecord() method
  *
  * @test
  */
 public function paramsToRecord()
 {
     $this->generateComponent();
     // No map
     $result = $this->Api->paramsToRecord(['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**']);
     $this->assertSame([], $result);
     // Normal
     $this->Api->recordMap = ['User' => ['id', 'name', 'email']];
     $result = $this->Api->paramsToRecord(['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**']);
     $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->paramsToRecord(['user_id' => 1, 'user_name' => 'hiromi', 'user_email' => '*****@*****.**']);
     $this->assertSame(['User' => ['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**']], $result);
     // Array map(assumes hasAndBelongsToMany)
     $this->Api->recordMap = ['User' => ['id', 'name', 'email'], 'Like' => ['likes' => []]];
     $params = ['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**', 'likes' => [1, 2, 3]];
     $result = $this->Api->paramsToRecord($params);
     $this->assertSame(['User' => ['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**'], 'Like' => [1, 2, 3]], $result);
     // Array map with field(assumes hasMany)
     $this->Api->recordMap['Like'] = ['likes' => ['toy_id']];
     $result = $this->Api->paramsToRecord($params);
     $this->assertSame(['User' => ['id' => 1, 'name' => 'hiromi', 'email' => '*****@*****.**'], 'Like' => [['toy_id' => 1], ['toy_id' => 2], ['toy_id' => 3]]], $result);
     $this->Api->recordMap['Like'] = ['' => []];
     try {
         $this->Api->paramsToRecord($params);
         $this->fail('Expected DomainException was not thrown');
     } catch (PHPUnit_Framework_AssertionFailedError $e) {
         throw $e;
     } catch (Exception $e) {
         $this->assertInstanceOf('DomainException', $e);
     }
 }