Completed
Push — master ( ac54ef...b19cf5 )
by Tomáš
01:31
created

RequestProcessorTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 7
dl 0
loc 57
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 5 1
A testProcess() 0 18 1
A createRequestFactory() 0 22 1
1
<?php
2
3
namespace Portiny\GraphQL\Tests\GraphQL;
4
5
use Nette\Http\Request;
6
use Nette\Http\UrlScript;
7
use Portiny\GraphQL\GraphQL\RequestProcessor;
8
use Portiny\GraphQL\Http\Request\JsonRequestParser;
9
use Portiny\GraphQL\Provider\MutationFieldsProvider;
10
use Portiny\GraphQL\Provider\QueryFieldsProvider;
11
use Portiny\GraphQL\Tests\AbstractContainerTestCase;
12
use Portiny\GraphQL\Tests\Source\Provider\SomeMutationField;
13
use Portiny\GraphQL\Tests\Source\Provider\SomeQueryField;
14
15
16
class RequestProcessorTest extends AbstractContainerTestCase
17
{
18
19
	/**
20
	 * {@inheritdoc}
21
	 */
22
	protected function setUp()
23
	{
24
		parent::setUp();
25
26
	}
27
28
29
	public function testProcess()
30
	{
31
		// test query
32
		$rawData = '{"query": "query Test($someArg: String) {someQueryName(someArg: $someArg)}", "variables": {"someArg": "someValue"}}';
33
		$output = $this->createRequestFactory($rawData)
34
			->process();
35
36
		$this->assertTrue(is_array($output));
37
		$this->assertSame('resolved someValue', $output['data']['someQueryName']);
38
39
		// test mutation
40
		$rawData = '{"query": "mutation Test($someArg: String) {someMutationName(someArg: $someArg)}", "variables": {"someArg": "someValue"}}';
41
		$output = $this->createRequestFactory($rawData)
42
			->process();
43
44
		$this->assertTrue(is_array($output));
45
		$this->assertSame('someValue resolved', $output['data']['someMutationName']);
46
	}
47
48
49
	protected function createRequestFactory(string $rawData): RequestProcessor
50
	{
51
		$url = new UrlScript('https://portiny.org');
52
		$httpRequest = new Request($url, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, function () use ($rawData) {
53
			return $rawData;
54
		});
55
		$jsonRequestParser = new JsonRequestParser($httpRequest);
56
57
		$queryField = new SomeQueryField;
58
		$queryFieldProvider = new QueryFieldsProvider;
59
		$queryFieldProvider->addField($queryField);
60
61
		$mutationField = new SomeMutationField;
62
		$mutationFieldProvider = new MutationFieldsProvider;
63
		$mutationFieldProvider->addField($mutationField);
64
65
		$requestProcessor = new RequestProcessor($jsonRequestParser);
66
		$requestProcessor->setQueryFieldsProvider($queryFieldProvider);
67
		$requestProcessor->setMutationFieldsProvider($mutationFieldProvider);
68
69
		return $requestProcessor;
70
	}
71
72
}
73