Source

						public function testSchema() {
		$model = $this->_model;
		$modelName = $model::meta('name');
		$expected = array($modelName => array(
			'id', 'author_id', 'title', 'created'
		));
		$result = $this->db->schema(new Query(array('model' => $this->_model)));
		$this->assertEqual($expected, $result);

		$query = new Query(array('model' =>  $this->_model, 'fields' => '*'));
		$result = $this->db->schema($query);
		$this->assertEqual($expected, $result);

		$query = new Query(array(
			'model' => $this->_model,
			'fields' => array('MockDatabaseComment'),
			'with' => array('MockDatabaseComment')
		));
		$expected = array(
			'MockDatabaseComment' => array(
				'id', 'post_id', 'author_id', 'body', 'created'
			)
		);
		$result = $this->db->schema($query);
		$this->assertEqual($expected, $result);

		$options = array(
			'model' => $this->_model,
			'with' => 'MockDatabaseComment'
		);
		$options['fields'] = array('id', 'title');
		$result = $this->db->schema(new Query($options));
		$expected = array($modelName => $options['fields']);
		$this->assertEqual($expected, $result);

		$options['fields'] = array(
			'MockDatabasePost.id',
			'MockDatabasePost.title',
			'MockDatabaseComment.body'
		);
		$result = $this->db->schema(new Query($options));
		$expected = array(
			$modelName => array(
				'id', 'title'
			),
			'MockDatabaseComment' => array(
				'body'
			));
		$this->assertEqual($expected, $result);

		$options['fields'] = array(
			'MockDatabasePost' => array('id', 'title'),
			'MockDatabaseComment' => array('body', 'created')
		);
		$result = $this->db->schema(new Query($options));
		$expected = array(
			$modelName => array(
				'id', 'title'
			),
			'MockDatabaseComment' => array(
				'body', 'created'
			));
		$this->assertEqual($expected, $result);

		$options['fields'] = array(
			'MockDatabasePost', 'MockDatabaseComment'
		);
		$result = $this->db->schema(new Query($options));
		$expected = array(
			$modelName => array(
				'id', 'author_id', 'title', 'created'
			),
			'MockDatabaseComment' => array(
				'id', 'post_id', 'author_id', 'body', 'created'
			));
		$this->assertEqual($expected, $result);
	}