Tests.php

<?php

namespace Tlf\LilDb\Test;

class Tests extends \Tlf\Tester {

    public function testInsertEmptyRow(){
        $this->disable();

        echo "This test disabled because i can't figure out how to insert an empty row in sqlite. it seems to work fine in mysql, but mysql setup is more complicated so I don't want to test with mysql";

        return;
        $ldb = \Tlf\LilDb::sqlite();
        // $ldb = \Tlf\LilDb::mysql();
        $ldb->create('cat', ['id'=>'integer', 'name'=>'VARCHAR(50)', 'description'=>'VARCHAR(200)']);

        $ldb->insert('cat',[]);
    }

    public function testDeleteNonExistingRow(){
        $jeff = ['name'=>'Jeff', 'description'=>'A silly cat', 'id'=>0];
        $julie = ['name'=>'Julie', 'description'=>'A very silly cat','id'=>1];
        $ldb = \Tlf\LilDb::sqlite();
        // $ldb = \Tlf\LilDb::mysql();
        $ldb->create('cat', ['id'=>'integer', 'name'=>'VARCHAR(50)', 'description'=>'VARCHAR(200)']);

        $ldb->insert('cat',$jeff);
        $ldb->insert('cat',$julie);

        $response = $ldb->delete('cat', ['id'=>20]);
        
        $this->is_false($response);
    }

    public function testDelete(){
        $jeff = ['name'=>'Jeff', 'description'=>'A silly cat', 'id'=>0];
        $julie = ['name'=>'Julie', 'description'=>'A very silly cat','id'=>1];
        $ldb = \Tlf\LilDb::sqlite();
        // $ldb = \Tlf\LilDb::mysql();
        $ldb->create('cat', ['id'=>'integer', 'name'=>'VARCHAR(50)', 'description'=>'VARCHAR(200)']);

        $ldb->insert('cat',$jeff);
        $ldb->insert('cat',$julie);

        $response = $ldb->delete('cat', ['id'=>1]);
        
        $this->is_true($response);
    }

    public function testEverything(){
        $jeff = ['name'=>'Jeff', 'description'=>'A silly cat', 'id'=>0];
        $julie = ['name'=>'Julie', 'description'=>'A very silly cat','id'=>1];
        $ldb = \Tlf\LilDb::sqlite();
        // $ldb = \Tlf\LilDb::mysql();
        $ldb->create('cat', ['id'=>'integer', 'name'=>'VARCHAR(50)', 'description'=>'VARCHAR(200)']);

        $ldb->insert('cat',$jeff);
        $ldb->insert('cat',$julie);

        $jeff['id'] = 0;
        $julie['id'] = 1;

        $this->test('Insert');
            $this->compare(
                $jeff, $ldb->select('cat', ['name'=>$jeff['name']])[0]
            );
            $this->compare(
                $jeff, $ldb->select('cat', ['id'=>$jeff['id']])[0]
            );

        $julie['name'] = 'Julie The Great';
        $ldb->update('cat',$julie);

        $this->test('Update');
            $this->compare(
                $julie,
                $ldb->select('cat', ['id'=>$julie['id']])[0]
            );

        $this->test('Update Where');
        $julie['description'] = 'The most powerful cat.';
        $ldb->updateWhere('cat', $julie, ['name'=>$julie['name']]);
            $this->compare(
                $julie,
                $ldb->select('cat', ['name'=>$julie['name']])[0]
            );

        $this->compare(
            [$jeff,$julie],
            $ldb->select('cat',[])
        );

        $ldb->delete('cat',['name'=>$jeff['name']]);
        $this->compare(
            [$julie],
            $ldb->query('SELECT * FROM cat')
        );

        $this->compare(
            [$julie],
            $ldb->query("SELECT * FROM cat WHERE name LIKE :name", ['name'=>$julie['name']])
        );

        $ldb->insert('cat',$jeff);
        $ldb->insert('cat',['name'=>'beep','description'=>'boop']);
        $ldb->delete('cat',[]);
        $this->compare(
            [],
            $ldb->select('cat', [])
        );
    }

}