/**
  * @dataProvider instanceProvider
  * @param HashArray $array
  */
 public function testAddElement(HashArray $array)
 {
     $elementCount = $array->count();
     $elements = $this->elementInstancesProvider();
     $element = array_shift($elements);
     $element = $element[0][0];
     ++$elementCount;
     $this->assertTrue($array->addElement($element), 'Adding an element should always work');
     $this->assertEquals($elementCount, $array->count(), 'Adding an element should always increase the count');
     $this->assertTrue($array->addElement($element), 'Adding an element should always work');
 }
 /**
  * @dataProvider instanceProvider
  * @param HashArray $array
  */
 public function testAddElement(HashArray $array)
 {
     $elementCount = $array->count();
     $elements = $this->elementInstancesProvider();
     $element = array_shift($elements);
     $element = $element[0][0];
     if (!$array->hasElement($element)) {
         ++$elementCount;
     }
     $this->assertEquals(!$array->hasElement($element), $array->addElement($element), 'Adding an element should only work if its not already there');
     $this->assertEquals($elementCount, $array->count(), 'Element count should only increase if the element was not there yet');
     $this->assertFalse($array->addElement($element), 'Adding an already present element should not work');
     $this->assertEquals($elementCount, $array->count(), 'Element count should not increase if the element is already there');
 }
Beispiel #3
0
 /**
  * @dataProvider instanceProvider
  * @param HashArray $array
  */
 public function testRemoveElement(HashArray $array)
 {
     $array->removeDuplicates();
     $elementCount = $array->count();
     /**
      * @var Hashable $element
      */
     foreach (iterator_to_array($array) as $element) {
         $this->assertTrue($array->hasElement($element));
         if ($elementCount % 2 === 0) {
             $array->removeElement($element);
         } else {
             $array->removeByElementHash($element->getHash());
         }
         $this->assertFalse($array->hasElement($element));
         $this->assertEquals(--$elementCount, $array->count());
     }
     $element = new PropertyNoValueSnak(42);
     $array->removeElement($element);
     $array->removeByElementHash($element->getHash());
     $this->assertTrue(true);
 }