public function testDelete()
{
$db = \Scalr::getDb();
$tableName = $this->createTestEntities($db);
$count = $db->GetOne("SELECT COUNT(*) FROM {$tableName} WHERE `str_id` = 'foo'");
$removedCount = TestEntity::deleteBy([['strId' => 'foo']]);
$this->assertEquals($count, $removedCount);
$count = $db->GetOne("SELECT COUNT(*) FROM {$tableName} WHERE `str_id` = 'foobar'");
$removedCount = TestEntity::deleteBy([['strId' => 'foo']]);
$this->assertEquals($count, $removedCount);
$entities = TestEntity::findByStrId('bar');
$removedCount = TestEntity::deleteByStrId('bar');
$this->assertEquals(count($entities), $removedCount);
/* @var $entities EntityIterator */
$entities = TestEntity::all();
$totalCount = 0;
/* @var $entity TestEntity */
foreach ($entities as $entity) {
$pk = $entity->getIterator()->getPrimaryKey();
$args = [];
foreach ($pk as $fieldName) {
$args[] = $entity->{$fieldName};
}
$totalCount += $removedCount = call_user_func_array([get_class($entity), 'deletePk'], $args);
$this->assertEquals(1, $removedCount);
}
$this->assertEquals(count($entities), $totalCount);
$this->assertEquals(0, $db->GetOne("SELECT COUNT(*) FROM {$tableName}"));
}