| 
<?phpnamespace 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);
 }
 }
 ?>
 |