@@ -89,4 +89,49 @@ public function testWhenRouteProvidedTheHelperDelegatesToTheRouterToGenerateUrl(
89
89
$ helper = $ this ->createHelper ();
90
90
$ this ->assertEquals ('URL ' , $ helper ('foo ' , ['bar ' => 'baz ' ]));
91
91
}
92
+
93
+ public function testIfRouteResultRouteNameDoesNotMatchRequestedNameItWillNotMergeParamsToGenerateUri ()
94
+ {
95
+ $ result = $ this ->prophesize (RouteResult::class);
96
+ $ result ->isFailure ()->willReturn (false );
97
+ $ result ->getMatchedRouteName ()->willReturn ('not-resource ' );
98
+ $ result ->getMatchedParams ()->shouldNotBeCalled ();
99
+
100
+ $ this ->router ->generateUri ('resource ' , [])->willReturn ('URL ' );
101
+
102
+ $ helper = $ this ->createHelper ();
103
+ $ helper ->setRouteResult ($ result ->reveal ());
104
+
105
+ $ this ->assertEquals ('URL ' , $ helper ('resource ' ));
106
+ }
107
+
108
+ public function testMergesRouteResultParamsWithProvidedParametersToGenerateUri ()
109
+ {
110
+ $ result = $ this ->prophesize (RouteResult::class);
111
+ $ result ->isFailure ()->willReturn (false );
112
+ $ result ->getMatchedRouteName ()->willReturn ('resource ' );
113
+ $ result ->getMatchedParams ()->willReturn (['id ' => 1 ]);
114
+
115
+ $ this ->router ->generateUri ('resource ' , ['id ' => 1 , 'version ' => 2 ])->willReturn ('URL ' );
116
+
117
+ $ helper = $ this ->createHelper ();
118
+ $ helper ->setRouteResult ($ result ->reveal ());
119
+
120
+ $ this ->assertEquals ('URL ' , $ helper ('resource ' , ['version ' => 2 ]));
121
+ }
122
+
123
+ public function testProvidedParametersOverrideAnyPresentInARouteResultWhenGeneratingUri ()
124
+ {
125
+ $ result = $ this ->prophesize (RouteResult::class);
126
+ $ result ->isFailure ()->willReturn (false );
127
+ $ result ->getMatchedRouteName ()->willReturn ('resource ' );
128
+ $ result ->getMatchedParams ()->willReturn (['id ' => 1 ]);
129
+
130
+ $ this ->router ->generateUri ('resource ' , ['id ' => 2 ])->willReturn ('URL ' );
131
+
132
+ $ helper = $ this ->createHelper ();
133
+ $ helper ->setRouteResult ($ result ->reveal ());
134
+
135
+ $ this ->assertEquals ('URL ' , $ helper ('resource ' , ['id ' => 2 ]));
136
+ }
92
137
}
0 commit comments