4
4
5
5
namespace Hateoas \Tests \Expression ;
6
6
7
- use Hateoas \Expression \ExpressionEvaluator ;
8
7
use Hateoas \Expression \LinkExpressionFunction ;
9
8
use Hateoas \Helper \LinkHelper ;
10
9
use Hateoas \Tests \TestCase ;
10
+ use JMS \Serializer \Expression \ExpressionEvaluator ;
11
11
use Symfony \Component \ExpressionLanguage \ExpressionLanguage ;
12
12
13
13
class LinkExpressionFunctionTest extends TestCase
@@ -18,12 +18,14 @@ public function testEvaluate()
18
18
19
19
$ linkHelperMock = $ this ->mockHelper ('/foo ' , $ object , 'self ' , false );
20
20
21
- $ expressionEvaluator = new ExpressionEvaluator (new ExpressionLanguage ());
22
- $ expressionEvaluator ->registerFunction (new LinkExpressionFunction ($ linkHelperMock ));
21
+ $ expressionLanguage = new ExpressionLanguage ();
22
+ $ expressionLanguage ->registerProvider (new LinkExpressionFunction ());
23
+
24
+ $ expressionEvaluator = new ExpressionEvaluator ($ expressionLanguage , ['link_helper ' => $ linkHelperMock ]);
23
25
24
26
$ this ->assertEquals (
25
27
'/foo ' ,
26
- $ expressionEvaluator ->evaluate ('expr( link(object, "self", false)) ' , $ object )
28
+ $ expressionEvaluator ->evaluate ('link(object, "self", false) ' , [ ' object ' => $ object] )
27
29
);
28
30
}
29
31
@@ -34,37 +36,29 @@ public function testCompile()
34
36
$ linkHelperMock = $ this ->mockHelper ('/foo ' , $ object , 'self ' , false );
35
37
36
38
$ expressionLanguage = new ExpressionLanguage ();
39
+ $ expressionLanguage ->registerProvider (new LinkExpressionFunction ());
40
+
37
41
$ expressionEvaluator = new ExpressionEvaluator ($ expressionLanguage );
38
- $ expressionEvaluator ->registerFunction (new LinkExpressionFunction ($ linkHelperMock ));
39
42
40
- $ compiledExpression = $ expressionLanguage ->compile ('link(object, "self", false) ' , ['object ' , ' link_helper ' ]);
43
+ $ compiledExpression = $ expressionLanguage ->compile ('link(object, "self", false) ' , ['object ' ]);
41
44
42
45
// setup variables for expression eval
43
- $ object = $ object ;
44
46
$ link_helper = $ linkHelperMock ;
45
47
46
48
$ this ->assertEquals ('/foo ' , eval (sprintf ('return %s; ' , $ compiledExpression )));
47
49
}
48
50
49
- /**
50
- * @param string $result
51
- * @param \stdClass $expectedObject
52
- * @param string $expectedRel
53
- * @param bool $expectedAbsolute
54
- *
55
- * @return LinkHelper
56
- */
57
- private function mockHelper ($ result , $ expectedObject , $ expectedRel , $ expectedAbsolute )
51
+ private function mockHelper (string $ result , \stdClass $ expectedObject , string $ expectedRel , bool $ expectedAbsolute ): LinkHelper
58
52
{
59
53
$ linkHelperMock = $ this
60
- ->getMockBuilder (' Hateoas\Helper\ LinkHelper' )
54
+ ->getMockBuilder (LinkHelper::class )
61
55
->disableOriginalConstructor ()
62
56
->getMock ();
63
57
64
58
$ linkHelperMock
65
59
->expects ($ this ->once ())
66
60
->method ('getLinkHref ' )
67
- ->will ($ this ->returnValue (' /foo ' ))
61
+ ->will ($ this ->returnValue ($ result ))
68
62
->with ($ expectedObject , $ expectedRel , $ expectedAbsolute );
69
63
70
64
return $ linkHelperMock ;
0 commit comments