17 $this->_model = new \Magento\Framework\Data\Collection(
26 $this->assertCount(2, $this->_model->getItems());
27 $this->_model->removeAllItems();
28 $this->assertEmpty($this->_model->getItems());
37 $this->assertInstanceOf(\
Magento\Framework\Data\Collection::class, $this->_model->loadWithFilter());
38 $this->assertEmpty($this->_model->getItems());
41 $this->assertCount(2, $this->_model->loadWithFilter()->getItems());
49 $this->_model->setItemObjectClass(
$class);
50 $this->assertAttributeSame(
$class,
'_itemObjectClass', $this->_model);
58 return [[\Magento\Framework\Url::class], [\Magento\Framework\DataObject::class]];
67 $this->_model->setItemObjectClass(
'Incorrect_ClassName');
72 $this->_model->addFilter(
'field1',
'value');
73 $this->assertEquals(
'field1', $this->_model->getFilter(
'field1')->getData(
'field'));
78 $this->_model->addFilter(
'field1',
'value');
79 $this->_model->addFilter(
'field2',
'value');
80 $this->assertEquals(
'field1', $this->_model->getFilter([
'field1',
'field2'])[0]->getData(
'field'));
81 $this->assertEquals(
'field2', $this->_model->getFilter([
'field1',
'field2'])[1]->getData(
'field'));
86 $this->assertEmpty($this->_model->getFilter([]));
87 $this->assertEmpty($this->_model->getFilter(
'non_existing_filter'));
92 $this->_model->setFlag(
'flag_name',
'flag_value');
93 $this->assertEquals(
'flag_value', $this->_model->getFlag(
'flag_name'));
94 $this->assertTrue($this->_model->hasFlag(
'flag_name'));
95 $this->assertNull($this->_model->getFlag(
'non_existing_flag'));
100 $this->_model->setCurPage(10);
101 $this->assertEquals(1, $this->_model->getCurPage());
106 $firstItemMock = $this->createPartialMock(
107 \
Magento\Framework\DataObject::class,
108 [
'getId',
'getData',
'toArray']
110 $secondItemMock = $this->createPartialMock(
111 \
Magento\Framework\DataObject::class,
112 [
'getId',
'getData',
'toArray']
114 $requiredFields = [
'required_field_one',
'required_field_two'];
122 'item_id' => $firstItemMock,
123 0 => $secondItemMock,
125 $firstItemMock->expects($this->exactly(2))->method(
'getId')->will($this->returnValue(
'item_id'));
128 ->expects($this->atLeastOnce())
131 ->will($this->returnValue(
'first_value'));
133 ->expects($this->atLeastOnce())
136 ->will($this->returnValue(
'second_value'));
139 ->expects($this->once())
141 ->with($requiredFields)
142 ->will($this->returnValue(
'value'));
144 $this->_model->addItem($firstItemMock);
145 $this->assertEquals($arrItems, $this->_model->toArray($requiredFields));
147 $this->_model->addItem($secondItemMock);
148 $this->_model->setDataToAll(
'column',
'value');
151 $this->assertEquals([
'first_value',
'second_value'], $this->_model->getColumnValues(
'colName'));
152 $this->assertEquals([$secondItemMock], $this->_model->getItemsByColumnValue(
'colName',
'second_value'));
153 $this->assertEquals($firstItemMock, $this->_model->getItemByColumnValue(
'colName',
'second_value'));
154 $this->assertEquals([], $this->_model->getItemsByColumnValue(
'colName',
'non_existing_value'));
155 $this->assertEquals(
null, $this->_model->getItemByColumnValue(
'colName',
'non_existing_value'));
158 $this->assertEquals([
'item_id', 0], $this->_model->getAllIds());
159 $this->assertEquals($firstItemMock, $this->_model->getFirstItem());
160 $this->assertEquals($secondItemMock, $this->_model->getLastItem());
161 $this->assertEquals(
$items, $this->_model->getItems(
'item_id'));
164 $this->assertNull($this->_model->getItemById(
'not_existing_item_id'));
165 $this->_model->removeItemByKey(
'item_id');
166 $this->assertEquals([$secondItemMock], $this->_model->getItems());
167 $this->_model->removeAllItems();
168 $this->assertEquals([], $this->_model->getItems());
173 for (
$i = 0;
$i < 3;
$i++) {
174 $item = $this->createPartialMock(\
Magento\Framework\DataObject::class, [
'testCallback']);
175 $item->expects($this->once())->method(
'testCallback')->with();
176 $this->_model->addItem(
$item);
178 $this->_model->each(
'testCallback');
183 for (
$i = 0;
$i < 3;
$i++) {
184 $item = $this->createPartialMock(\
Magento\Framework\DataObject::class, [
'testCallback']);
185 $item->expects($this->once())->method(
'testCallback')->with(
'a',
'b',
'c');
186 $this->_model->addItem(
$item);
188 $this->_model->each(
'testCallback', [
'a',
'b',
'c']);
193 for (
$i = 0;
$i < 3;
$i++) {
194 $item = $this->createPartialMock(\
Magento\Framework\DataObject::class, [
'testCallback']);
195 $item->expects($this->once())->method(
'testCallback')->with();
196 $this->_model->addItem(
$item);
198 $this->_model->each(
function (
$item) {
199 $item->testCallback();
205 for (
$i = 0;
$i < 3;
$i++) {
206 $item = $this->createPartialMock(\
Magento\Framework\DataObject::class, [
'testItemCallback']);
207 $item->expects($this->once())->method(
'testItemCallback')->with(
'a',
'b',
'c');
208 $this->_model->addItem(
$item);
210 $this->_model->each(
function (
$item, ...$args) {
211 $item->testItemCallback(...$args);
217 $mockCallbackObject = $this->getMockBuilder(
'DummyEachCallbackInstance')
218 ->setMethods([
'testObjCallback'])
220 $mockCallbackObject->method(
'testObjCallback')->willReturnCallback(
function (
$item, ...$args) {
221 $item->testItemCallback(...$args);
224 for (
$i = 0;
$i < 3;
$i++) {
225 $item = $this->createPartialMock(\
Magento\Framework\DataObject::class, [
'testItemCallback']);
226 $item->expects($this->once())->method(
'testItemCallback')->with();
227 $this->_model->addItem(
$item);
230 $this->_model->each([$mockCallbackObject,
'testObjCallback']);
235 $mockCallbackObject = $this->getMockBuilder(
'DummyEachCallbackInstance')
236 ->setMethods([
'testObjCallback'])
238 $mockCallbackObject->method(
'testObjCallback')->willReturnCallback(
function (
$item, ...$args) {
239 $item->testItemCallback(...$args);
242 for (
$i = 0;
$i < 3;
$i++) {
243 $item = $this->createPartialMock(\
Magento\Framework\DataObject::class, [
'testItemCallback']);
244 $item->expects($this->once())->method(
'testItemCallback')->with(
'a',
'b',
'c');
245 $this->_model->addItem(
$item);
248 $callback = [$mockCallbackObject,
'testObjCallback'];
249 $this->_model->each($callback, [
'a',
'b',
'c']);
testCallsCallableArrayWithEachItemAndArgs()
testPossibleFlowWithItem()
testCallsCallableArrayWithEachItemNoArgs()
testEachCallsMethodOnEachItemWithNoArgs()
testSetItemObjectClassException()
testSetItemObjectClass($class)
$_option $_optionId $class
setItemObjectClassDataProvider()
testCallsClosureWithEachItemAndArgs()
testCallsClosureWithEachItemAndNoArgs()
testEachCallsMethodOnEachItemWithArgs()
testGetNonExistingFilters()