8 use \Magento\Framework\Data\Argument\Interpreter\ArrayType;
24 $this->_itemInterpreter = $this->getMockForAbstractClass(
25 \
Magento\Framework\Data\Argument\InterpreterInterface::class
27 $this->_model =
new ArrayType($this->_itemInterpreter);
38 $this->_model->evaluate($inputData);
47 'non-array item' => [[
'item' =>
'non-array']],
59 $this->_itemInterpreter->expects($this->any())
61 ->will($this->returnCallback(
function ($input) {
62 return '-' . $input[
'value'] .
'-';
64 $actual = $this->_model->evaluate($input);
65 $this->assertSame($expected, $actual);
74 'empty array items' => [
78 'absent array items' => [
82 'present array items' => [
85 'key1' => [
'value' =>
'value 1'],
86 'key2' => [
'value' =>
'value 2'],
87 'key3' => [
'value' =>
'value 3'],
91 'key1' =>
'-value 1-',
92 'key2' =>
'-value 2-',
93 'key3' =>
'-value 3-',
96 'sorted array items' => [
99 'key1' => [
'value' =>
'value 1',
'sortOrder' => 50],
100 'key2' => [
'value' =>
'value 2'],
101 'key3' => [
'value' =>
'value 3',
'sortOrder' => 10],
102 'key4' => [
'value' =>
'value 4'],
106 'key2' =>
'-value 2-',
107 'key4' =>
'-value 4-',
108 'key3' =>
'-value 3-',
109 'key1' =>
'-value 1-',
112 'pre-sorted array items' => [
115 'key1' => [
'value' =>
'value 1'],
116 'key4' => [
'value' =>
'value 4'],
117 'key2' => [
'value' =>
'value 2',
'sortOrder' => 10],
118 'key3' => [
'value' =>
'value 3'],
122 'key1' =>
'-value 1-',
123 'key4' =>
'-value 4-',
124 'key3' =>
'-value 3-',
125 'key2' =>
'-value 2-',
128 'sort order edge case values' => [
131 'key1' => [
'value' =>
'value 1',
'sortOrder' => 101],
132 'key4' => [
'value' =>
'value 4'],
133 'key2' => [
'value' =>
'value 2',
'sortOrder' => -10],
134 'key3' => [
'value' =>
'value 3'],
135 'key5' => [
'value' =>
'value 5',
'sortOrder' => 20],
139 'key2' =>
'-value 2-',
140 'key4' =>
'-value 4-',
141 'key3' =>
'-value 3-',
142 'key5' =>
'-value 5-',
143 'key1' =>
'-value 1-',
testEvaluateException($inputData)
evaluateExceptionDataProvider()
testEvaluate(array $input, array $expected)