File tree Expand file tree Collapse file tree 4 files changed +68
-15
lines changed Expand file tree Collapse file tree 4 files changed +68
-15
lines changed Original file line number Diff line number Diff line change @@ -61,7 +61,7 @@ public function __toString(): string
61
61
break ;
62
62
case 'object ' :
63
63
$ value = Assert::validate (self ::class, $ this ->value )
64
- ? $ this ->buildStringFromArgument ( $ this ->value )
64
+ ? $ this ->buildStringFromArray ([ $ this ->value ] )
65
65
: null ;
66
66
break ;
67
67
default :
@@ -74,21 +74,12 @@ public function __toString(): string
74
74
* @param Argument[] $values
75
75
* @return string|null
76
76
*/
77
- private function buildStringFromArray (array $ values ): ?string
77
+ protected function buildStringFromArray (array $ values ): ?string
78
78
{
79
79
$ returnArray = [];
80
80
foreach ($ values as $ value ) {
81
- $ returnArray [] = $ this -> buildStringFromArgument ( $ value) ;
81
+ $ returnArray [] = ( string ) $ value ;
82
82
}
83
- return '[ ' . implode (', ' , $ returnArray ) . '] ' ;
84
- }
85
-
86
- /**
87
- * @param Argument $argument
88
- * @return string|null
89
- */
90
- private function buildStringFromArgument (Argument $ argument ): ?string
91
- {
92
- return '{ ' . $ argument . '} ' ;
83
+ return '{ ' . implode (', ' , $ returnArray ) . '} ' ;
93
84
}
94
85
}
Original file line number Diff line number Diff line change
1
+ <?php
2
+ declare (strict_types=1 );
3
+
4
+ namespace GraphQL \RequestBuilder ;
5
+
6
+ /**
7
+ * @author david.pauli
8
+ * @package GraphQLTest\RequestBuilder
9
+ * @since 15.08.2018
10
+ */
11
+ class ArrayArgument extends Argument
12
+ {
13
+ /**
14
+ * @param Argument[] $values
15
+ * @return string|null
16
+ */
17
+ protected function buildStringFromArray (array $ values ): ?string
18
+ {
19
+ $ returnArray = [];
20
+ foreach ($ values as $ value ) {
21
+ $ returnArray [] = '{ ' . (string ) $ value . '} ' ;
22
+ }
23
+ return '[ ' . implode (', ' , $ returnArray ) . '] ' ;
24
+ }
25
+ }
Original file line number Diff line number Diff line change @@ -56,8 +56,8 @@ public function testToStringArgumentArray(): void
56
56
$ argument = new Argument (self ::ARGUMENT_NAME , [$ innerArgument , $ innerArgument2 ]);
57
57
58
58
static ::assertEquals (
59
- self ::ARGUMENT_NAME . ':[ { ' . self ::ARGUMENT_NAME_INNER . ':" ' . self ::ARGUMENT_VALUE_STRING . '"},{ '
60
- . self ::ARGUMENT_NAME_INNER_2 . ': ' . self ::ARGUMENT_VALUE_INT_POSITIVE . '}] ' ,
59
+ self ::ARGUMENT_NAME . ':{ ' . self ::ARGUMENT_NAME_INNER . ':" ' . self ::ARGUMENT_VALUE_STRING . '", '
60
+ . self ::ARGUMENT_NAME_INNER_2 . ': ' . self ::ARGUMENT_VALUE_INT_POSITIVE . '} ' ,
61
61
(string ) $ argument ,
62
62
'Setting array of Arguments should return correct string. '
63
63
);
Original file line number Diff line number Diff line change
1
+ <?php
2
+ declare (strict_types=1 );
3
+
4
+ namespace GraphQLTest \RequestBuilder ;
5
+
6
+ use GraphQL \RequestBuilder \Argument ;
7
+ use GraphQL \RequestBuilder \ArrayArgument ;
8
+ use PHPUnit \Framework \TestCase ;
9
+
10
+ /**
11
+ * @author david.pauli
12
+ * @package GraphQLTest\RequestBuilder
13
+ * @since 15.08.2018
14
+ */
15
+ class ArrayArgumentTest extends TestCase
16
+ {
17
+ private const ARGUMENT_NAME = 'argumentName ' ;
18
+ private const ARGUMENT_NAME_INNER = 'argumentNameInner ' ;
19
+ private const ARGUMENT_NAME_INNER_2 = 'argumentNameInner2 ' ;
20
+ private const ARGUMENT_VALUE_INT_POSITIVE = 2 ;
21
+ private const ARGUMENT_VALUE_STRING = 'argumentValueString ' ;
22
+
23
+ public function testToStringArgumentArray (): void
24
+ {
25
+ $ innerArgument = new Argument (self ::ARGUMENT_NAME_INNER , self ::ARGUMENT_VALUE_STRING );
26
+ $ innerArgument2 = new ArrayArgument (self ::ARGUMENT_NAME_INNER_2 , self ::ARGUMENT_VALUE_INT_POSITIVE );
27
+
28
+ $ argument = new ArrayArgument (self ::ARGUMENT_NAME , [$ innerArgument , $ innerArgument2 ]);
29
+
30
+ static ::assertEquals (
31
+ self ::ARGUMENT_NAME . ':[{ ' . self ::ARGUMENT_NAME_INNER . ':" ' . self ::ARGUMENT_VALUE_STRING . '"},{ '
32
+ . self ::ARGUMENT_NAME_INNER_2 . ': ' . self ::ARGUMENT_VALUE_INT_POSITIVE . '}] ' ,
33
+ (string ) $ argument ,
34
+ 'Setting array of Arguments should return correct string. '
35
+ );
36
+ }
37
+ }
You can’t perform that action at this time.
0 commit comments