Пример #1
0
 /**
  * Tests setting values
  *
  * @return void
  */
 public function testSet()
 {
     $test = new NodeAttribute('test');
     $this->assertTrue($test->set('v1'));
     $this->assertEquals(array('v1'), $test->getValues(), 'Our value got added');
     $this->assertEquals(array(), array_merge($test->getDiffAdditions(), $test->getDiffDeletions(), $test->getDiffReplacements()), 'Attribute is marked as overridden, changes are not tracked anymore');
     $this->assertTrue($test->set(array('v2', 'v3')));
     $this->assertEquals(array(), array_merge($test->getDiffAdditions(), $test->getDiffDeletions(), $test->getDiffReplacements()), 'Attribute is still marked as overridden, no changes got tracked');
     $test->add('v4');
     $test->remove('v3');
     $test->remove('v2');
     $test->add('v3');
     $this->assertEquals(array(), array_merge($test->getDiffAdditions(), $test->getDiffDeletions(), $test->getDiffReplacements()), 'Even regular add and remove operations get ignored');
     $test->snapshot();
     $test->add('v5');
     $this->assertEquals(array('v5'), $test->getDiffAdditions(), 'Tracking is working again');
 }