129 lines
2.7 KiB
PHP
Executable File
129 lines
2.7 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\GraphQl\TestModule;
|
|
|
|
use Magento\TestFramework\TestCase\GraphQlAbstract;
|
|
|
|
/**
|
|
* Test for basic GraphQl features
|
|
*/
|
|
class GraphQlQueryTest extends GraphQlAbstract
|
|
{
|
|
public function testQueryTestModuleReturnsResults()
|
|
{
|
|
$id = 1;
|
|
|
|
$query = <<<QUERY
|
|
{
|
|
testItem(id: {$id})
|
|
{
|
|
item_id
|
|
name
|
|
}
|
|
}
|
|
QUERY;
|
|
|
|
$response = $this->graphQlQuery($query);
|
|
$this->assertArrayHasKey('testItem', $response);
|
|
$testItem = $response['testItem'];
|
|
$this->assertArrayHasKey('item_id', $testItem);
|
|
$this->assertArrayHasKey('name', $testItem);
|
|
$this->assertEquals(1, $testItem['item_id']);
|
|
$this->assertEquals('itemName', $testItem['name']);
|
|
}
|
|
|
|
public function testQueryTestModuleExtensionAttribute()
|
|
{
|
|
$id = 2;
|
|
|
|
$query = <<<QUERY
|
|
{
|
|
testItem(id: {$id})
|
|
{
|
|
item_id
|
|
name
|
|
integer_list
|
|
}
|
|
}
|
|
QUERY;
|
|
|
|
$response = $this->graphQlQuery($query);
|
|
$this->assertArrayHasKey('testItem', $response);
|
|
$testItem = $response['testItem'];
|
|
$this->assertArrayHasKey('integer_list', $testItem);
|
|
$this->assertEquals([3, 4, 5], $testItem['integer_list']);
|
|
}
|
|
|
|
public function testQueryViaGetRequestReturnsResults()
|
|
{
|
|
$id = 1;
|
|
|
|
$query = <<<QUERY
|
|
{
|
|
testItem(id: {$id})
|
|
{
|
|
item_id
|
|
name
|
|
}
|
|
}
|
|
QUERY;
|
|
|
|
$response = $this->graphQlQuery($query, [], '', []);
|
|
|
|
$this->assertArrayHasKey('testItem', $response);
|
|
}
|
|
|
|
public function testQueryViaGetRequestWithVariablesReturnsResults()
|
|
{
|
|
$id = 1;
|
|
|
|
$query = <<<QUERY
|
|
query getTestItem(\$id: Int!)
|
|
{
|
|
testItem(id: \$id)
|
|
{
|
|
item_id
|
|
name
|
|
}
|
|
}
|
|
QUERY;
|
|
$variables = [
|
|
"id" => $id
|
|
];
|
|
|
|
$response = $this->graphQlQuery($query, $variables, '', []);
|
|
|
|
$this->assertArrayHasKey('testItem', $response);
|
|
}
|
|
|
|
public function testQueryTestUnionResults()
|
|
{
|
|
$query = <<<QUERY
|
|
{
|
|
testUnion {
|
|
__typename
|
|
... on TypeCustom1 {
|
|
custom_name1
|
|
}
|
|
... on TypeCustom2 {
|
|
custom_name2
|
|
}
|
|
}
|
|
}
|
|
QUERY;
|
|
|
|
$response = $this->graphQlQuery($query);
|
|
|
|
$this->assertArrayHasKey('testUnion', $response);
|
|
$testUnion = $response['testUnion'];
|
|
$this->assertArrayHasKey('custom_name1', $testUnion);
|
|
$this->assertEquals('custom_name1_value', $testUnion['custom_name1']);
|
|
$this->assertArrayNotHasKey('custom_name2', $testUnion);
|
|
}
|
|
}
|