<?php 
namespace eMapper\SQLite\Attribute; 
 
use eMapper\SQLite\SQLiteConfig; 
use eMapper\Attribute\AbstractEntityMappingTest; 
 
/** 
 * Test dynamic attributes on entities 
 * @author emaphp 
 * @group sqlite 
 * @group attribute 
 */ 
class EntityMappingTest extends AbstractEntityMappingTest { 
    use SQLiteConfig; 
     
    public function testStatementAttribute() { 
        $sale = $this->mapper->type('obj:Acme\Result\Attribute\ExtraSale')->query("SELECT * FROM sales WHERE sale_id = 3"); 
        $this->assertInstanceOf('Acme\Result\Attribute\ExtraSale', $sale); 
     
        //productId 
        $this->assertInternalType('integer', $sale->productId); 
        $this->assertEquals(4, $sale->productId); 
     
        //userId 
        $this->assertInternalType('integer', $sale->userId); 
        $this->assertEquals(2, $sale->userId); 
     
        //product 
        $this->assertInternalType('array', $sale->product); 
        $this->assertEquals(4, $sale->product['product_id']); 
        $this->assertEquals('GFX00067', $sale->product['product_code']); 
        $this->assertEquals('ATI HD 9999', $sale->product['description']); 
        $this->assertEquals(null, $sale->product['color']); 
        $this->assertEquals(120.75, $sale->product['price']); 
        $this->assertEquals('Hardware', $sale->product['category']); 
        $this->assertEquals(3.8, $sale->product['rating']); 
        $this->assertEquals(0, $sale->product['refurbished']); 
        $this->assertEquals(2013, $sale->product['manufacture_year']); 
     
        //user 
        $this->assertInternalType('object', $sale->user); 
        $this->assertInstanceOf('stdClass', $sale->user); 
        $this->assertEquals(2, $sale->user->user_id); 
        $this->assertEquals('okenobi', $sale->user->user_name); 
        $this->assertEquals('1976-03-03', $sale->user->birth_date); 
        $this->assertEquals('2013-01-06 12:34:10', $sale->user->last_login); 
        $this->assertEquals('00:00:00', $sale->user->newsletter_time); 
        $this->assertEquals($this->getBlob(), $sale->user->avatar); 
    } 
} 
?>
 
 |