コード例 #1
0
ファイル: BooleanChainTest.php プロジェクト: danfekete/spec
 public function testOrChain()
 {
     $or = new OrSpec($this->generator, $this->generator);
     $this->assertEquals($or->generate(), "(1 || 1)");
     $or->add($this->generator);
     $this->assertEquals($or->generate(), "(1 || 1 || 1)");
 }
コード例 #2
0
ファイル: ArrayBuilder.php プロジェクト: danfekete/spec
 protected function parseObj($obj)
 {
     if (!is_array($obj)) {
         return null;
     }
     $v = current($obj);
     $k = key($obj);
     $specs = [];
     if (is_array($v)) {
         foreach ($v as $item) {
             $ret = $this->parseObj($item);
             if ($ret) {
                 $specs[] = $ret;
             }
         }
     }
     switch ($k) {
         case 'and':
             $andSpec = new AndSpec();
             $andSpec->addMany($specs);
             return $andSpec;
         case 'or':
             $orSpec = new OrSpec();
             $orSpec->addMany($specs);
             return $orSpec;
         case 'not':
             return new NotSpec($this->parseObj($v));
         case 'lang':
         case 'e':
         case 'exp':
             return new ExpressionSpec($v);
             break;
         default:
             throw new UnknownSpec("Unknown spec: {$k}");
     }
 }