23 private $queryModifierMock;
28 private $dataConverter;
33 private $iteratorMock;
38 private $queryGeneratorMock;
43 private $selectByRangeMock;
53 private $fieldDataConverter;
58 private $objectManager;
63 protected function setUp()
68 $this->queryModifierMock = $this->getMockBuilder(QueryModifierInterface::class)
69 ->disableOriginalConstructor()
70 ->setMethods([
'modify'])
73 $this->dataConverter = $this->objectManager->get(SerializedToJson::class);
75 $this->iteratorMock = $this->getMockBuilder(BatchIterator::class)
76 ->disableOriginalConstructor()
77 ->setMethods([
'current',
'valid',
'next'])
80 $iterationComplete =
false;
83 $this->iteratorMock->expects($this->any())
86 function () use (&$iterationComplete) {
87 if (!$iterationComplete) {
88 $iterationComplete =
true;
96 $this->queryGeneratorMock = $this->getMockBuilder(Generator::class)
97 ->disableOriginalConstructor()
98 ->setMethods([
'generate'])
101 $this->selectByRangeMock = $this->getMockBuilder(Select::class)
102 ->disableOriginalConstructor()
106 $this->queryGeneratorMock->expects($this->any())
108 ->will($this->returnValue($this->iteratorMock));
111 $this->iteratorMock->expects($this->any())
113 ->will($this->returnValue($this->selectByRangeMock));
115 $this->adapterMock = $this->getMockBuilder(Mysql::class)
116 ->disableOriginalConstructor()
117 ->setMethods([
'fetchPairs',
'quoteInto',
'update'])
120 $this->adapterMock->expects($this->any())
121 ->method(
'quoteInto')
122 ->will($this->returnValue(
'field=value'));
124 $this->fieldDataConverter = $this->objectManager->create(
125 FieldDataConverter::class,
127 'queryGenerator' => $this->queryGeneratorMock,
128 'dataConverter' => $this->dataConverter
143 2 =>
'a:2:{s:3:"foo";s:3:"bar";s:3:"bar";s:',
146 $this->adapterMock->expects($this->any())
147 ->method(
'fetchPairs')
148 ->with($this->selectByRangeMock)
149 ->will($this->returnValue($rows));
151 $this->adapterMock->expects($this->once())
153 ->with(
'table', [
'value' =>
'null'], [
'id IN (?)' => [1]]);
155 $this->fieldDataConverter->convert($this->adapterMock,
'table',
'id',
'value', $this->queryModifierMock);
167 8 =>
'{"valid": "json value"}',
170 $this->adapterMock->expects($this->any())
171 ->method(
'fetchPairs')
172 ->with($this->selectByRangeMock)
173 ->will($this->returnValue($rows));
175 $this->adapterMock->expects($this->once())
177 ->with(
'table', [
'value' =>
'null'], [
'id IN (?)' => [7]]);
179 $this->fieldDataConverter->convert($this->adapterMock,
'table',
'id',
'value', $this->queryModifierMock);
testAlreadyConvertedDataSkipped()
testDataConvertErrorReporting()
static getObjectManager()