25 $this->dataObject = new \Magento\Framework\DataObject();
33 $this->dataObject =
null;
42 $object = new \Magento\Framework\DataObject();
43 $this->assertEquals([], $object->getData());
45 $data = [
'test' =>
'test'];
46 $object = new \Magento\Framework\DataObject(
$data);
47 $this->assertEquals(
$data, $object->getData());
55 $this->dataObject->addData([
'test' =>
'value']);
56 $this->assertEquals(
'value', $this->dataObject->getData(
'test'));
58 $this->dataObject->addData([
'test' =>
'value1']);
59 $this->assertEquals(
'value1', $this->dataObject->getData(
'test'));
61 $this->dataObject->addData([
'test2' =>
'value2']);
62 $this->assertEquals([
'test' =>
'value1',
'test2' =>
'value2'], $this->dataObject->getData());
70 $data = [
'key1' =>
'value1',
'key2' =>
'value2',
'key3' => 3];
71 $this->dataObject->setData(
$data);
72 $this->assertEquals(
$data, $this->dataObject->getData());
75 $this->dataObject->setData(
'key1', 1);
76 $this->assertEquals(
$data, $this->dataObject->getData());
78 $this->dataObject->setData(
'key1');
80 $this->assertEquals(
$data, $this->dataObject->getData());
88 $data = [
'key1' =>
'value1',
'key2' =>
'value2',
'key3' => 3,
'key4' => 4];
89 $this->dataObject->setData(
$data);
91 $this->dataObject->unsetData(
'key1');
93 $this->assertEquals(
$data, $this->dataObject->getData());
95 $this->dataObject->unsetData([
'key2',
'key3']);
98 $this->assertEquals(
$data, $this->dataObject->getData());
100 $this->dataObject->unsetData();
101 $this->assertEquals([], $this->dataObject->getData());
112 'subkey2.1' =>
'value2.1',
113 'subkey2.2' =>
'multiline' . PHP_EOL .
'string',
114 'subkey2.3' => new \Magento\Framework\DataObject([
'test_key' =>
'test_value']),
119 $this->dataObject->setData($key,
$value);
121 $this->assertEquals(
$data, $this->dataObject->getData());
122 $this->assertEquals(
'value1', $this->dataObject->getData(
'key1'));
123 $this->assertEquals(
'value2.1', $this->dataObject->getData(
'key2/subkey2.1'));
124 $this->assertEquals(
'value2.1', $this->dataObject->getData(
'key2',
'subkey2.1'));
125 $this->assertEquals(
'string', $this->dataObject->getData(
'key2/subkey2.2', 1));
126 $this->assertEquals(
'test_value', $this->dataObject->getData(
'key2/subkey2.3',
'test_key'));
127 $this->assertNull($this->dataObject->getData(
'key3',
'test_key'));
135 'subkey2.1' =>
'value2.1',
136 'subkey2.2' =>
'multiline 138 'subkey2.3' => new \Magento\Framework\DataObject([
'test_key' =>
'test_value']),
142 $this->dataObject->setData($key,
$value);
144 $this->assertEquals(
'value1', $this->dataObject->getDataByPath(
'key1'));
145 $this->assertEquals(
'value2.1', $this->dataObject->getDataByPath(
'key2/subkey2.1'));
146 $this->assertEquals(
'test_value', $this->dataObject->getDataByPath(
'key2/subkey2.3/test_key'));
147 $this->assertNull($this->dataObject->getDataByPath(
'empty'));
148 $this->assertNull($this->dataObject->getDataByPath(
'empty/path'));
153 $this->dataObject->setData(
'key',
'value');
154 $this->assertEquals(
'value', $this->dataObject->getDataByKey(
'key'));
155 $this->assertNull($this->dataObject->getDataByKey(
'empty'));
163 $mock = $this->createPartialMock(\
Magento\Framework\DataObject::class, [
'setTestData',
'getTestData']);
164 $mock->expects($this->once())->method(
'setTestData')->with($this->equalTo(
'data'));
165 $mock->expects($this->once())->method(
'getTestData');
167 $mock->setDataUsingMethod(
'test_data',
'data');
168 $mock->getDataUsingMethod(
'test_data');
177 $this->dataObject->setData(
'key_1',
'value1');
178 $this->assertTrue($this->dataObject->hasData(
'key_1'));
179 $this->assertEquals(
'value1', $this->dataObject->getDataUsingMethod(
'key_1'));
181 $this->dataObject->setData(
'key2',
'value2');
182 $this->assertEquals(
'value2', $this->dataObject->getData(
'key2'));
183 $this->assertEquals(
null, $this->dataObject->getKey2());
184 $this->assertEquals(
null, $this->dataObject->getDataUsingMethod(
'key2'));
192 $this->assertFalse($this->dataObject->hasData());
193 $this->assertFalse($this->dataObject->hasData(
'key'));
194 $this->dataObject->setData(
'key',
'value');
195 $this->assertTrue($this->dataObject->hasData(
'key'));
203 $this->assertEquals([], $this->dataObject->toArray());
204 $this->assertEquals([
'key' =>
null], $this->dataObject->toArray([
'key']));
205 $this->dataObject->setData(
'key1',
'value1');
206 $this->dataObject->setData(
'key2',
'value2');
207 $this->assertEquals([
'key1' =>
'value1'], $this->dataObject->toArray([
'key1']));
208 $this->assertEquals([
'key2' =>
'value2'], $this->dataObject->convertToArray([
'key2']));
216 $this->dataObject->setData(
'key1',
'value1');
217 $this->dataObject->setData(
'key2',
'value2');
219 <key1><![CDATA[value1]]></key1> 220 <key2><![CDATA[value2]]></key2> 223 $this->assertEquals($xml, $this->dataObject->toXml());
226 <key2><![CDATA[value2]]></key2> 229 $this->assertEquals($xml, $this->dataObject->toXml([
'key2']));
232 <key1><![CDATA[value1]]></key1> 233 <key2><![CDATA[value2]]></key2> 236 $this->assertEquals($xml, $this->dataObject->toXml([],
'my_item'));
238 $xml =
'<key1><![CDATA[value1]]></key1> 239 <key2><![CDATA[value2]]></key2> 241 $this->assertEquals($xml, $this->dataObject->toXml([],
false));
243 $xml =
'<?xml version="1.0" encoding="UTF-8"?> 245 <key1><![CDATA[value1]]></key1> 246 <key2><![CDATA[value2]]></key2> 249 $this->assertEquals($xml, $this->dataObject->toXml([],
'item',
true));
251 $xml =
'<?xml version="1.0" encoding="UTF-8"?> 257 $this->assertEquals($xml, $this->dataObject->convertToXml([],
'item',
true,
false));
265 $this->dataObject->setData(
'key1',
'value1');
266 $this->dataObject->setData(
'key2',
'value2');
267 $this->assertEquals(
'{"key1":"value1","key2":"value2"}', $this->dataObject->toJson());
268 $this->assertEquals(
'{"key1":"value1"}', $this->dataObject->toJson([
'key1']));
269 $this->assertEquals(
'{"key1":"value1","key":null}', $this->dataObject->convertToJson([
'key1',
'key']));
277 $this->dataObject->setData(
'key1',
'value1');
278 $this->dataObject->setData(
'key2',
'value2');
279 $this->assertEquals(
'value1, value2', $this->dataObject->toString());
280 $this->assertEquals(
'test value1 with value2', $this->dataObject->toString(
'test {{key1}} with {{key2}}'));
290 $this->dataObject->setData(
'key',
'value');
291 $this->dataObject->setTest(
'test');
292 $this->assertEquals(
'test', $this->dataObject->getData(
'test'));
294 $this->assertEquals($this->dataObject->getData(
'test'), $this->dataObject->getTest());
296 $this->assertTrue($this->dataObject->hasTest());
297 $this->dataObject->unsTest();
298 $this->assertNull($this->dataObject->getData(
'test'));
300 $this->dataObject->testTest();
309 $this->dataObject->test =
'test';
311 $this->assertEquals(
'test', $this->dataObject->test);
314 $this->dataObject->testTest =
'test';
316 $this->assertEquals(
'test', $this->dataObject->testTest);
324 $this->assertTrue($this->dataObject->isEmpty());
325 $this->dataObject->setData(
'test',
'test');
326 $this->assertFalse($this->dataObject->isEmpty());
334 $this->dataObject->setData(
'key1',
'value1');
335 $this->dataObject->setData(
'key2',
'value2');
336 $this->assertEquals(
'key1="value1" key2="value2"', $this->dataObject->serialize());
338 'key1:\'value1\'_key2:\'value2\'',
339 $this->dataObject->serialize([
'key',
'key1',
'key2'],
':',
'_',
'\'')
348 $data = [
'key1' =>
'value1',
'key2' => [
'test'],
'key3' => $this->dataObject];
350 $this->dataObject->setData($key,
$value);
354 $debug[
'key3 (Magento\Framework\DataObject)'] =
'*** RECURSION ***';
355 $this->assertEquals(
$debug, $this->dataObject->debug());
363 $this->dataObject->offsetSet(
'key1',
'value1');
364 $this->assertTrue($this->dataObject->offsetExists(
'key1'));
365 $this->assertFalse($this->dataObject->offsetExists(
'key2'));
367 $this->assertEquals(
'value1', $this->dataObject->offsetGet(
'key1'));
368 $this->assertNull($this->dataObject->offsetGet(
'key2'));
369 $this->dataObject->offsetUnset(
'key1');
370 $this->assertFalse($this->dataObject->offsetExists(
'key1'));
380 $refObject = new \ReflectionObject($this->dataObject);
381 $refMethod = $refObject->getMethod(
'_underscore');
382 $refMethod->setAccessible(
true);
383 $output = $refMethod->invoke($this->dataObject, $input);
384 $this->assertEquals($expectedOutput,
$output);
393 'Test 1' => [
'Stone1Color',
'stone_1_color'],
394 'Test 2' => [
'StoneColor',
'stone_color'],
395 'Test 3' => [
'StoneToXml',
'stone_to_xml'],
396 'Test 4' => [
'1StoneColor',
'1_stone_color'],
397 'Test 5' => [
'getCcLast4',
'get_cc_last_4'],
398 'Test 6' => [
'99Bottles',
'99_bottles'],
399 'Test 7' => [
'XApiLogin',
'x_api_login']
testSetGetDataUsingMethod()
testGetDataUsingMethodWithoutUnderscore()
testUnderscore($input, $expectedOutput)