/** * 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); }