diff --git a/app/code/Magento/SalesGraphQl/Test/Unit/Model/Resolver/OrdersTest.php b/app/code/Magento/SalesGraphQl/Test/Unit/Model/Resolver/OrdersTest.php new file mode 100644 index 0000000000000..d8bd98dbdaab4 --- /dev/null +++ b/app/code/Magento/SalesGraphQl/Test/Unit/Model/Resolver/OrdersTest.php @@ -0,0 +1,106 @@ +contextMock = $this->createMock(ContextInterface::class); + + $this->collectionFactoryInterfaceMock = $this->getMockBuilder(CollectionFactoryInterface::class) + ->getMock(); + + $this->resolver = new Orders( + $this->collectionFactoryInterfaceMock, + ); + } + + public function testResolve(): void + { + $collectionMock = $this->getMockBuilder(Collection::class) + ->disableOriginalConstructor() + ->getMock(); + $orderMock = $this->createMock(Order::class); + + $collectionMock->method('getIterator') + ->willReturn(new \ArrayObject([$orderMock])); + + $this->contextMock + ->method('getUserId') + ->willReturn(1); + + $this->collectionFactoryInterfaceMock + ->method('create') + ->willReturn($collectionMock); + + $result = $this->resolver->resolve( + $this->getFieldStub(), + $this->contextMock, + $this->getResolveInfoStub(), + null + ); + + $this->assertIsArray($result); + $assertKeys = [ + 'id', + 'increment_id', + 'order_number', + 'created_at', + 'grand_total', + 'status', + 'model' + ]; + foreach ($assertKeys as $key) { + $this->assertArrayHasKey($key, current($result['items'])); + } + $this->assertEquals($orderMock, current($result['items'])['model']); + } + + /** + * @return MockObject|Field + */ + private function getFieldStub(): Field + { + return $this->createMock(Field::class); + } + + /** + * @return MockObject|ResolveInfo + */ + private function getResolveInfoStub(): ResolveInfo + { + /** @var MockObject|ResolveInfo $resolveInfoMock */ + return $this->createMock(ResolveInfo::class); + } +}