@@ -356,7 +356,7 @@ public function testFindOneByDataWithRequestPathIsRedirect()
356
356
357
357
$ urlRewriteRowInDb = [
358
358
UrlRewrite::REQUEST_PATH => $ origRequestPath . '/ ' ,
359
- UrlRewrite::TARGET_PATH => 'page-A/ ' ,
359
+ UrlRewrite::TARGET_PATH => 'page-A/ ' ,
360
360
UrlRewrite::REDIRECT_TYPE => 301 ,
361
361
UrlRewrite::STORE_ID => 1 ,
362
362
];
@@ -378,6 +378,65 @@ public function testFindOneByDataWithRequestPathIsRedirect()
378
378
$ this ->assertEquals (['urlRewrite1 ' ], $ this ->storage ->findOneByData ($ data ));
379
379
}
380
380
381
+ public function testFindOneByDataWithRequestPathTwoResults ()
382
+ {
383
+ $ origRequestPath = 'page-one ' ;
384
+ $ data = [
385
+ 'col1 ' => 'val1 ' ,
386
+ 'col2 ' => 'val2 ' ,
387
+ UrlRewrite::REQUEST_PATH => $ origRequestPath ,
388
+ ];
389
+
390
+ $ this ->select ->expects ($ this ->at (1 ))
391
+ ->method ('where ' )
392
+ ->with ('col1 IN (?) ' , 'val1 ' );
393
+
394
+ $ this ->select ->expects ($ this ->at (2 ))
395
+ ->method ('where ' )
396
+ ->with ('col2 IN (?) ' , 'val2 ' );
397
+
398
+ $ this ->select ->expects ($ this ->at (3 ))
399
+ ->method ('where ' )
400
+ ->with ('request_path IN (?) ' , [$ origRequestPath , $ origRequestPath . '/ ' ]);
401
+
402
+ $ this ->connectionMock ->expects ($ this ->any ())
403
+ ->method ('quoteIdentifier ' )
404
+ ->will ($ this ->returnArgument (0 ));
405
+
406
+ $ this ->connectionMock ->expects ($ this ->never ())
407
+ ->method ('fetchRow ' );
408
+
409
+ $ urlRewriteRowInDb = [
410
+ UrlRewrite::REQUEST_PATH => $ origRequestPath . '/ ' ,
411
+ UrlRewrite::TARGET_PATH => 'page-A/ ' ,
412
+ UrlRewrite::REDIRECT_TYPE => 301 ,
413
+ UrlRewrite::STORE_ID => 1 ,
414
+ ];
415
+
416
+ $ urlRewriteRowInDb2 = [
417
+ UrlRewrite::REQUEST_PATH => $ origRequestPath ,
418
+ UrlRewrite::TARGET_PATH => 'page-B/ ' ,
419
+ UrlRewrite::REDIRECT_TYPE => 301 ,
420
+ UrlRewrite::STORE_ID => 1 ,
421
+ ];
422
+
423
+ $ this ->connectionMock ->expects ($ this ->once ())
424
+ ->method ('fetchAll ' )
425
+ ->with ($ this ->select )
426
+ ->will ($ this ->returnValue ([$ urlRewriteRowInDb , $ urlRewriteRowInDb2 ]));
427
+
428
+ $ this ->dataObjectHelper ->expects ($ this ->at (0 ))
429
+ ->method ('populateWithArray ' )
430
+ ->with (['urlRewrite1 ' ], $ urlRewriteRowInDb2 , \Magento \UrlRewrite \Service \V1 \Data \UrlRewrite::class)
431
+ ->will ($ this ->returnSelf ());
432
+
433
+ $ this ->urlRewriteFactory ->expects ($ this ->at (0 ))
434
+ ->method ('create ' )
435
+ ->will ($ this ->returnValue (['urlRewrite1 ' ]));
436
+
437
+ $ this ->assertEquals (['urlRewrite1 ' ], $ this ->storage ->findOneByData ($ data ));
438
+ }
439
+
381
440
public function testReplace ()
382
441
{
383
442
$ urlFirst = $ this ->getMock ('Magento\UrlRewrite\Service\V1\Data\UrlRewrite ' , [], [], '' , false );
0 commit comments