Пример #1
0
 /**
  * @test
  */
 public function mergeSeveralBagsIntoOne()
 {
     $attributes1 = array('someName1' => 'someValue1', 'someName2' => 'someValue2');
     $attributes2 = array('someName2' => 'anotherValue2', 'someName3' => 'someValue3');
     $containers = array(new BagContainer($attributes1), new BagContainer($attributes2));
     $container = BagContainer::merge($containers);
     $expectedAttributes = array_merge($attributes1, $attributes2);
     $this->assertEquals($expectedAttributes, $container->getAll());
 }
 public static function merge(array $containers)
 {
     $resultContainer = parent::merge($containers);
     $resultMap = array();
     foreach ($containers as $container) {
         foreach ($container->resultMap as $tag => $bag) {
             if (!isset($resultMap[$tag])) {
                 $resultMap[$tag] = array();
             }
             $resultMap[$tag][] = $bag;
         }
     }
     foreach ($resultMap as $tag => $bags) {
         $resultMap[$tag] = BagContainer::merge($bags);
     }
     $resultContainer->resultMap = $resultMap;
     return $resultContainer;
 }
Пример #3
0
 public static function merge(array $containers)
 {
     $internalConstraints = array();
     foreach ($containers as $constraint) {
         $internalConstraints = array_merge($internalConstraints, $constraint->constraints);
     }
     $constraint = parent::merge($containers);
     $constraint->constraints = $internalConstraints;
     return $constraint;
 }