/** * @test */ public function removeRemovesTheRightObjectEvenIfItHasBeenModifiedSinceItsAddition() { $object1 = new \ArrayObject(['val' => '1']); $object2 = new \ArrayObject(['val' => '2']); $object3 = new \ArrayObject(['val' => '3']); $persistenceManager = new Generic\PersistenceManager(); $persistenceManager->add($object1); $persistenceManager->add($object2); $persistenceManager->add($object3); $object2['foo'] = 'bar'; $object3['val'] = '2'; $persistenceManager->remove($object2); $this->assertAttributeContains($object1, 'addedObjects', $persistenceManager); $this->assertAttributeNotContains($object2, 'addedObjects', $persistenceManager); $this->assertAttributeContains($object3, 'addedObjects', $persistenceManager); }