@@ -338,16 +338,43 @@ public function testOverrideSharedParametersPerTemplate()
338
338
$ this ->assertEquals ($ content , $ result );
339
339
}
340
340
341
- public function testOverrideSharedParametersAtRender ()
341
+ public function useArrayOrViewModel ()
342
+ {
343
+ return [
344
+ 'array ' => [false ],
345
+ 'view-model ' => [true ],
346
+ ];
347
+ }
348
+
349
+ /**
350
+ * @dataProvider useArrayOrViewModel
351
+ */
352
+ public function testOverrideSharedParametersAtRender ($ viewAsModel )
342
353
{
343
354
$ renderer = new ZendViewRenderer ();
344
355
$ renderer ->addPath (__DIR__ . '/TestAsset ' );
345
356
$ name = 'Zend ' ;
346
357
$ name2 = 'View ' ;
347
358
$ renderer ->addDefaultParam ($ renderer ::TEMPLATE_ALL , 'name ' , $ name );
348
- $ result = $ renderer ->render ('zendview ' , ['name ' => $ name2 ]);
359
+
360
+ $ viewModel = ['name ' => $ name2 ];
361
+ $ viewModel = $ viewAsModel ? new ViewModel ($ viewModel ) : $ viewModel ;
362
+
363
+ $ result = $ renderer ->render ('zendview ' , $ viewModel );
349
364
$ content = file_get_contents (__DIR__ . '/TestAsset/zendview.phtml ' );
350
365
$ content = str_replace ('<?php echo $name ?> ' , $ name2 , $ content );
351
366
$ this ->assertEquals ($ content , $ result );
352
367
}
368
+
369
+ public function testWillRenderAViewModel ()
370
+ {
371
+ $ renderer = new ZendViewRenderer ();
372
+ $ renderer ->addPath (__DIR__ . '/TestAsset ' );
373
+
374
+ $ viewModel = new ViewModel (['name ' => 'Zend ' ]);
375
+ $ result = $ renderer ->render ('zendview ' , $ viewModel );
376
+
377
+ $ content = file_get_contents (__DIR__ . '/TestAsset/zendview.phtml ' );
378
+ $ content = str_replace ('<?php echo $name ?> ' , 'Zend ' , $ content );
379
+ }
353
380
}
0 commit comments