23 private function getModel(array $fieldMapping, array $defaultOrders)
28 public function testProcess()
30 $orderOneField =
'orderOneField';
31 $orderOneFieldMapped =
'orderOneFieldMapped';
34 $orderTwoField =
'orderTwoField';
37 $orderThreeField =
'orderTwoField';
38 $orderThreeDirection =
'!!@!@';
40 $fieldMapping = [$orderOneField => $orderOneFieldMapped];
42 $defaultOrders = [
'orderTwoField' =>
'DESC'];
44 $model = $this->getModel($fieldMapping, $defaultOrders);
47 $sortOrderOneMock = $this->getMockBuilder(SortOrder::class)
48 ->disableOriginalConstructor()
50 $sortOrderOneMock->expects($this->once())
52 ->willReturn($orderOneField);
53 $sortOrderOneMock->expects($this->once())
54 ->method(
'getDirection')
55 ->willReturn($orderOneDirection);
58 $sortOrderTwoMock = $this->getMockBuilder(SortOrder::class)
59 ->disableOriginalConstructor()
61 $sortOrderTwoMock->expects($this->once())
63 ->willReturn($orderTwoField);
64 $sortOrderTwoMock->expects($this->once())
65 ->method(
'getDirection')
66 ->willReturn($orderTwoDirection);
69 $sortOrderThreeMock = $this->getMockBuilder(SortOrder::class)
70 ->disableOriginalConstructor()
72 $sortOrderThreeMock->expects($this->once())
74 ->willReturn($orderThreeField);
75 $sortOrderThreeMock->expects($this->once())
76 ->method(
'getDirection')
77 ->willReturn($orderThreeDirection);
80 $sortOrderFourMock = $this->getMockBuilder(SortOrder::class)
81 ->disableOriginalConstructor()
83 $sortOrderFourMock->expects($this->once())
86 $sortOrderFourMock->expects($this->never())
87 ->method(
'getDirection');
90 $searchCriteriaMock = $this->getMockBuilder(SearchCriteriaInterface::class)
93 $searchCriteriaMock->expects($this->exactly(2))
94 ->method(
'getSortOrders')
95 ->willReturn([$sortOrderOneMock, $sortOrderTwoMock, $sortOrderThreeMock, $sortOrderFourMock]);
98 $collectionMock = $this->getMockBuilder(AbstractDb::class)
99 ->disableOriginalConstructor()
102 $collectionMock->expects($this->exactly(3))
105 [$orderOneFieldMapped, $orderOneDirection],
106 [$orderTwoField, $orderTwoDirection],
110 $model->process($searchCriteriaMock, $collectionMock);
113 public function testProcessWithDefaults()
115 $defaultOneField =
'defaultOneField';
116 $defaultOneFieldMapped =
'defaultOneFieldMapped';
119 $defaultTwoField =
'defaultTwoField';
122 $defaultThreeField =
'defaultThreeField';
123 $defaultThreeDirection =
'$#%^';
125 $fieldMapping = [$defaultOneField => $defaultOneFieldMapped];
128 $defaultOneField => $defaultOneDirection,
129 $defaultTwoField => $defaultTwoDirection,
130 $defaultThreeField => $defaultThreeDirection,
133 $model = $this->getModel($fieldMapping, $defaultOrders);
136 $searchCriteriaMock = $this->getMockBuilder(SearchCriteriaInterface::class)
139 $searchCriteriaMock->expects($this->once())
140 ->method(
'getSortOrders')
144 $collectionMock = $this->getMockBuilder(AbstractDb::class)
145 ->disableOriginalConstructor()
148 $collectionMock->expects($this->exactly(3))
151 [$defaultOneFieldMapped, $defaultOneDirection],
152 [$defaultTwoField, $defaultTwoDirection],
156 $model->process($searchCriteriaMock, $collectionMock);