lithium\tests\cases\data\source\MongoDbTest::testCastingConditionsValues PHP Метод

testCastingConditionsValues() публичный Метод

    public function testCastingConditionsValues()
    {
        $query = new Query(array('schema' => new Schema(array('fields' => $this->_schema))));
        $conditions = array('_id' => new MongoId("4c8f86167675abfabdbe0300"));
        $result = $this->_db->conditions($conditions, $query);
        $this->assertEqual($conditions, $result);
        $conditions = array('_id' => "4c8f86167675abfabdbe0300");
        $result = $this->_db->conditions($conditions, $query);
        $this->assertEqual(array_keys($conditions), array_keys($result));
        $this->assertInstanceOf('MongoId', $result['_id']);
        $this->assertEqual($conditions['_id'], (string) $result['_id']);
        $conditions = array('_id' => array("4c8f86167675abfabdbe0300", "4c8f86167675abfabdbf0300", "4c8f86167675abfabdc00300"));
        $result = $this->_db->conditions($conditions, $query);
        $this->assertCount(3, $result['_id']['$in']);
        foreach (array(0, 1, 2) as $i) {
            $this->assertInstanceOf('MongoId', $result['_id']['$in'][$i]);
        }
        $conditions = array('voters' => array('$all' => array("4c8f86167675abfabdbf0300", "4c8f86167675abfabdc00300")));
        $result = $this->_db->conditions($conditions, $query);
        $this->assertCount(2, $result['voters']['$all']);
        $result = $result['voters']['$all'];
        foreach (array(0, 1) as $i) {
            $this->assertInstanceOf('MongoId', $result[$i]);
            $this->assertEqual($conditions['voters']['$all'][$i], (string) $result[$i]);
        }
        $conditions = array('$or' => array(array('_id' => "4c8f86167675abfabdbf0300"), array('guid' => "4c8f86167675abfabdbf0300")));
        $result = $this->_db->conditions($conditions, $query);
        $this->assertEqual(array('$or'), array_keys($result));
        $this->assertCount(2, $result['$or']);
        foreach (array('_id', 'guid') as $i => $key) {
            $this->assertInstanceOf('MongoId', $result['$or'][$i][$key]);
            $this->assertEqual($conditions['$or'][$i][$key], (string) $result['$or'][$i][$key]);
        }
    }