public function testHandleOnFlushWhenSnapshotLengthIsNotEnoughAndTwoValuesAreReplacedWithDots() { $owner = new TestEntity(); $updatedColl = $this->getPersistentCollection($owner, ['type' => ClassMetadata::MANY_TO_MANY, 'isOwningSide' => true, 'fieldName' => 'values', 'targetEntity' => self::ENUM_VALUE_CLASS], [new TestEnumValue('value678901234567890123456789_01', 'Value 1'), new TestEnumValue('value678901234567890123456789_02', 'Value 2'), new TestEnumValue('value678901234567890123456789_03', 'Value 3'), new TestEnumValue('value678901234567890123456789_04', 'Value 4'), new TestEnumValue('value678901234567890123456789_05', 'Value 5'), new TestEnumValue('value678901234567890123456789_06', 'Value 6'), new TestEnumValue('value678901234567890123456789_07', 'Value 7'), new TestEnumValue('value678901234567890123456789_08', 'Value 8'), new TestEnumValue('value678901234567890123456789_09', 'Value 9'), new TestEnumValue('value678901234567890123456789_10', 'Value 10'), new TestEnumValue('value678901234567890123456789_11', 'Value 11'), new TestEnumValue('value678901234567890123456789_12', 'Value 12'), new TestEnumValue('value678901234567890123456789_13', 'Value 13'), new TestEnumValue('value678901234567890123456789_14', 'Value 14'), new TestEnumValue('value678901234567890123456789_15', 'Value 15'), new TestEnumValue('z1', 'Value 16'), new TestEnumValue('zz1', 'Value 17')]); $this->uow->expects($this->once())->method('getScheduledCollectionUpdates')->will($this->returnValue([$updatedColl])); $this->uow->expects($this->once())->method('getScheduledCollectionDeletions')->will($this->returnValue([])); $metadata = $this->getMockBuilder('Doctrine\\ORM\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock(); $this->em->expects($this->once())->method('getClassMetadata')->with(get_class($owner))->will($this->returnValue($metadata)); $this->uow->expects($this->once())->method('recomputeSingleEntityChangeSet')->with($this->identicalTo($metadata), $owner); $event = $this->getOnFlushEventArgsMock(); $this->manager->handleOnFlush($event); $this->assertLessThanOrEqual(ExtendHelper::MAX_ENUM_SNAPSHOT_LENGTH, strlen($owner->getValuesSnapshot())); $this->assertEquals('value678901234567890123456789_01,value678901234567890123456789_02,value678901234567890123456789_03,' . 'value678901234567890123456789_04,value678901234567890123456789_05,value678901234567890123456789_06,' . 'value678901234567890123456789_07,value678901234567890123456789_08,value678901234567890123456789_09,' . 'value678901234567890123456789_10,value678901234567890123456789_11,value678901234567890123456789_12,' . 'value678901234567890123456789_13,value678901234567890123456789_14,value678901234567890123456789_15,...', $owner->getValuesSnapshot()); }
/** * @param OnFlushEventArgs $event */ public function onFlush(OnFlushEventArgs $event) { $this->multiEnumManager->handleOnFlush($event); }