Jamm\Memory\Tests\TestMemoryObject::test_select_fx PHP Method

test_select_fx() public method

public test_select_fx ( )
    public function test_select_fx()
    {
        $this->mem->del($this->mem->get_keys());
        $this->mem->save('key1', array('kk1' => 5, 'kk2' => 7));
        $this->mem->save('key2', array('kk1' => 4, 'kk2' => 6));
        $this->mem->save('key3', array('kk1' => 5, 'kk2' => 5));
        $this->mem->save('key4', array('kk1' => 2, 'kk2' => 4));
        $this->mem->save('key5', array('id' => 0, 'kk1' => 6, 'kk2' => 5));
        $this->mem->save('key6', array('id' => 1, 'kk1' => 9, 'kk2' => 5));
        $this->mem->save('key7', array('id' => 0, 'kk1' => 7, 'kk2' => 4));
        $call = $this->mem->select_fx(function ($s, $index) {
            if ($index == 'key1' || $s['kk2'] == 7) {
                return true;
            } else {
                return false;
            }
        });
        $this->assertEquals($call, array('kk1' => 5, 'kk2' => 7));
        $call = $this->mem->select_fx(function ($s, $index) {
            if ($s['kk1'] == $s['kk2']) {
                return true;
            } else {
                return false;
            }
        });
        $this->assertEquals($call, array('kk1' => 5, 'kk2' => 5));
        $call = $this->mem->select_fx(function ($s, $index) {
            if ($s['kk1'] == $s['kk2'] || $index == 'key4') {
                return true;
            } else {
                return false;
            }
        }, true);
        $this->assertEquals($call, array('key3' => array('kk1' => 5, 'kk2' => 5), 'key4' => array('kk1' => 2, 'kk2' => 4)));
        $call = $this->mem->select_fx(function ($s, $index) {
            if ($s['kk1'] > 7 || empty($s['id']) && $s['kk2'] < 5) {
                return true;
            } else {
                return false;
            }
        }, true);
        $this->assertEquals($call, array('key4' => array('kk1' => 2, 'kk2' => 4), 'key6' => array('id' => 1, 'kk1' => 9, 'kk2' => 5), 'key7' => array('id' => 0, 'kk1' => 7, 'kk2' => 4)));
    }