@@ -260,6 +260,7 @@ public function isSubsetOfProvider()
260
260
array ('2.3.0 ' , '>1.0 ' , true ),
261
261
array ('2.3.0 ' , '>2.3 ' , false ),
262
262
array ('2.3.0 ' , '>2.5 ' , false ),
263
+ array ('=1.0.0.0 ' , '>1.0.0.0 ' , false ),
263
264
264
265
array ('1.0.0 ' , '>=1.0 ' , true ),
265
266
array ('2.3.0 ' , '>=1.0 ' , true ),
@@ -476,4 +477,252 @@ public function isSubsetOfProvider()
476
477
);
477
478
}
478
479
480
+ /**
481
+ * @dataProvider matchesProvider
482
+ * @param $constraint1
483
+ * @param $constraint2
484
+ * @param $expected
485
+ */
486
+ public function testMatches ($ constraint1 , $ constraint2 , $ expected )
487
+ {
488
+ $ constraint1 = Constraint::parse ($ constraint1 );
489
+ $ constraint2 = Constraint::parse ($ constraint2 );
490
+
491
+ $ this ->assertSame (
492
+ $ expected ,
493
+ $ constraint1 ->matches ($ constraint2 ),
494
+ (string ) $ constraint1 . ($ expected ? '' : ' does \'nt ' ) .
495
+ ' matches ' . (string ) $ constraint2
496
+ );
497
+ }
498
+
499
+ public function matchesProvider ()
500
+ {
501
+ return array (
502
+ array ('1.0 ' , '1.0 ' , true ),
503
+ array ('1.5.8 ' , '1.5.8 ' , true ),
504
+ array ('1.0.0 ' , '1.0 ' , true ),
505
+ array ('1.5.0 ' , '2.5 ' , false ),
506
+ array ('2.3.0 ' , '1.5.8 ' , false ),
507
+
508
+ array ('2.3.0 ' , '>1.0 ' , true ),
509
+ array ('2.3.0 ' , '>2.3 ' , false ),
510
+ array ('2.3.0 ' , '>2.5 ' , false ),
511
+ array ('=1.0.0.0 ' , '>1.0.0.0 ' , false ),
512
+
513
+ array ('1.0.0 ' , '>=1.0 ' , true ),
514
+ array ('2.3.0 ' , '>=1.0 ' , true ),
515
+ array ('2.3.0 ' , '>=5.2.0 ' , false ),
516
+
517
+ array ('2.3.0 ' , '<3.5.8 ' , true ),
518
+ array ('2.3.0 ' , '<2.3 ' , false ),
519
+ array ('2.3.0 ' , '<1.5.8 ' , false ),
520
+
521
+ array ('2.3.0 ' , '<=2.3 ' , true ),
522
+ array ('2.3.0 ' , '<=2.3.0.0 ' , true ),
523
+ array ('2.3.0 ' , '<=0.3.0.0 ' , false ),
524
+
525
+ array ('1.5.0 ' , '!=2.5 ' , true ),
526
+ array ('3.5.0 ' , '!=2.5 ' , true ),
527
+ array ('2.3.0 ' , '!=2.3 ' , false ),
528
+
529
+ array ('1.5.0 ' , '<>2.5 ' , true ),
530
+ array ('3.5.0 ' , '<>2.5 ' , true ),
531
+ array ('2.3.0 ' , '<>2.3 ' , false ),
532
+
533
+ array ('2.5.0 ' , '~2.5 ' , true ),
534
+ array ('2.5.1 ' , '~2.5 ' , true ),
535
+ array ('2.7.0 ' , '~2.5 ' , true ),
536
+ array ('3.0.0 ' , '~2.5 ' , false ),
537
+
538
+ array ('2.5.0 ' , '~2.5.3 ' , false ),
539
+ array ('2.5.1 ' , '~2.5.3 ' , false ),
540
+ array ('2.5.3 ' , '~2.5.3 ' , true ),
541
+ array ('2.5.4 ' , '~2.5.3 ' , true ),
542
+ array ('2.5.4.5 ' , '~2.5.3 ' , true ),
543
+ array ('2.7.0 ' , '~2.5.3 ' , false ),
544
+ array ('3.0.0 ' , '~2.5.3 ' , false ),
545
+
546
+ array ('>2.3.0 ' , '1.5.8 ' , false ),
547
+
548
+ array ('>2.3.0 ' , '>1.5.8 ' , true ),
549
+ array ('>2.3.0 ' , '>2.3.0 ' , true ),
550
+ array ('>2.3.0 ' , '>2.3.0.1 ' , true ),
551
+
552
+ array ('>2.3.0 ' , '>=1.5.8 ' , true ),
553
+ array ('>2.3.0 ' , '>=2.3.0 ' , true ),
554
+ array ('>2.3.0 ' , '>=2.3.0.1 ' , true ),
555
+
556
+ array ('>2.3.0 ' , '<1.5.8 ' , false ),
557
+ array ('>2.3.0 ' , '<2.3.0 ' , false ),
558
+ array ('>2.3.0 ' , '<2.3.2 ' , true ),
559
+
560
+ array ('>2.3.0 ' , '<=1.5.8 ' , false ),
561
+ array ('>2.3.0 ' , '<=2.3.0 ' , false ),
562
+ array ('>2.3.0 ' , '<=2.3.0.1 ' , true ),
563
+
564
+ array ('>2.3.0 ' , '!=1.5.8 ' , true ),
565
+ array ('>2.3.0 ' , '!=2.3.0 ' , true ),
566
+ array ('>2.3.0 ' , '!=2.3.0.1 ' , true ),
567
+
568
+ array ('>2.3.0 ' , '<>1.5.8 ' , true ),
569
+ array ('>2.3.0 ' , '<>2.3.0 ' , true ),
570
+ array ('>2.3.0 ' , '<>2.3.0.1 ' , true ),
571
+
572
+ array ('>2.3.0 ' , '~1.5.8 ' , false ),
573
+ array ('>2.3.0 ' , '~2.3 ' , true ),
574
+ array ('>2.3.0 ' , '~2.4 ' , true ),
575
+
576
+ array ('>=2.3.0 ' , '1.5.8 ' , false ),
577
+
578
+ array ('>=2.3.0 ' , '>1.5.8 ' , true ),
579
+ array ('>=2.3.0 ' , '>2.3 ' , true ),
580
+ array ('>=2.3.0 ' , '>2.3.0.1 ' , true ),
581
+
582
+ array ('>=2.3.0 ' , '>=1.5.8 ' , true ),
583
+ array ('>=2.3.0 ' , '>=2.3 ' , true ),
584
+ array ('>=2.3.0 ' , '>=2.3.0.1 ' , true ),
585
+
586
+ array ('>=2.3.0 ' , '<1.5.8 ' , false ),
587
+ array ('>=2.3.0 ' , '<2.3 ' , false ),
588
+ array ('>=2.3.0 ' , '<2.3.0.1 ' , true ),
589
+
590
+ array ('>=2.3.0 ' , '<=1.5.8 ' , false ),
591
+ array ('>=2.3.0 ' , '<=2.3 ' , true ),
592
+ array ('>=2.3.0 ' , '<=2.3.0.1 ' , true ),
593
+
594
+ array ('>=2.3.0 ' , '!=1.5.8 ' , true ),
595
+ array ('>=2.3.0 ' , '!=2.3 ' , true ),
596
+ array ('>=2.3.0 ' , '!=2.3.0.1 ' , true ),
597
+
598
+ array ('>=2.3.0 ' , '<>1.5.8 ' , true ),
599
+ array ('>=2.3.0 ' , '<>2.3 ' , true ),
600
+ array ('>=2.3.0 ' , '<>2.3.0.1 ' , true ),
601
+
602
+ array ('>=2.3.0 ' , '~1.5.8 ' , false ),
603
+ array ('>=2.3.0 ' , '~2.3 ' , true ),
604
+ array ('>=2.3.0 ' , '~2.4. ' , true ),
605
+
606
+ array ('<2.3.0 ' , '1.5.8 ' , true ),
607
+
608
+ array ('<2.3.0 ' , '>1.5.8 ' , true ),
609
+ array ('<2.3.0 ' , '>2.3.0 ' , false ),
610
+ array ('<2.3.0 ' , '>2.3.0.1 ' , false ),
611
+
612
+ array ('<2.3.0 ' , '>=1.5.8 ' , true ),
613
+ array ('<2.3.0 ' , '>=2.3.0 ' , false ),
614
+ array ('<2.3.0 ' , '>=2.3.0.1 ' , false ),
615
+
616
+ array ('<2.3.0 ' , '<1.5.8 ' , true ),
617
+ array ('<2.3.0 ' , '<2.3.0 ' , true ),
618
+ array ('<2.3.0 ' , '<2.3.0.1 ' , true ),
619
+
620
+ array ('<2.3.0 ' , '<=1.5.8 ' , true ),
621
+ array ('<2.3.0 ' , '<=2.3.0 ' , true ),
622
+ array ('<2.3.0 ' , '<=2.3.0.1 ' , true ),
623
+
624
+ array ('<2.3.0 ' , '!=1.5.8 ' , true ),
625
+ array ('<2.3.0 ' , '!=2.3.0 ' , true ),
626
+ array ('<2.3.0 ' , '!=2.3.0.1 ' , true ),
627
+
628
+ array ('<2.3.0 ' , '<>1.5.8 ' , true ),
629
+ array ('<2.3.0 ' , '<>2.3.0 ' , true ),
630
+ array ('<2.3.0 ' , '<>2.3.0.1 ' , true ),
631
+
632
+ array ('<2.3.0 ' , '~1.5.8 ' , true ),
633
+ array ('<2.3.0 ' , '~2.3 ' , false ),
634
+ array ('<2.3.0 ' , '~2.4. ' , false ),
635
+
636
+ array ('<=2.3.0 ' , '1.5.8 ' , true ),
637
+
638
+ array ('<=2.3.0 ' , '>1.5.8 ' , true ),
639
+ array ('<=2.3.0 ' , '>2.3.0 ' , false ),
640
+ array ('<=2.3.0 ' , '>2.3.0.1 ' , false ),
641
+
642
+ array ('<=2.3.0 ' , '>=1.5.8 ' , true ),
643
+ array ('<=2.3.0 ' , '>=2.3.0 ' , true ),
644
+ array ('<=2.3.0 ' , '>=2.3.0.1 ' , false ),
645
+
646
+ array ('<=2.3.0 ' , '<1.5.8 ' , true ),
647
+ array ('<=2.3.0 ' , '<2.3.0 ' , true ),
648
+ array ('<=2.3.0 ' , '<2.3.0.1 ' , true ),
649
+
650
+ array ('<=2.3.0 ' , '<=1.5.8 ' , true ),
651
+ array ('<=2.3.0 ' , '<=2.3.0 ' , true ),
652
+ array ('<=2.3.0 ' , '<=2.3.0.1 ' , true ),
653
+
654
+ array ('<=2.3.0 ' , '!=1.5.8 ' , true ),
655
+ array ('<=2.3.0 ' , '!=2.3.0 ' , true ),
656
+ array ('<=2.3.0 ' , '!=2.3.0.1 ' , true ),
657
+
658
+ array ('<=2.3.0 ' , '<>1.5.8 ' , true ),
659
+ array ('<=2.3.0 ' , '<>2.3.0 ' , true ),
660
+ array ('<=2.3.0 ' , '<>2.3.0.1 ' , true ),
661
+
662
+ array ('<=2.3.0 ' , '~1.5.8 ' , true ),
663
+ array ('<=2.3.0 ' , '~2.3 ' , true ),
664
+ array ('<=2.3.0 ' , '~2.4. ' , false ),
665
+
666
+ array ('!=2.3.0 ' , '1.5.8 ' , true ),
667
+
668
+ array ('<>2.3.0 ' , '>1.5.8 ' , true ),
669
+ array ('!=2.3.0 ' , '>2.3.0 ' , true ),
670
+ array ('<>2.3.0 ' , '>2.3.0.1 ' , true ),
671
+
672
+ array ('!=2.3.0 ' , '>=1.5.8 ' , true ),
673
+ array ('<>2.3.0 ' , '>=2.3.0 ' , true ),
674
+ array ('!=2.3.0 ' , '>=2.3.0.1 ' , true ),
675
+
676
+ array ('<>2.3.0 ' , '<1.5.8 ' , true ),
677
+ array ('!=2.3.0 ' , '<2.3.0 ' , true ),
678
+ array ('<>2.3.0 ' , '<2.3.0.1 ' , true ),
679
+
680
+ array ('!=2.3.0 ' , '<=1.5.8 ' , true ),
681
+ array ('<>2.3.0 ' , '<=2.3.0 ' , true ),
682
+ array ('!=2.3.0 ' , '<=2.3.0.1 ' , true ),
683
+
684
+ array ('<>2.3.0 ' , '!=1.5.8 ' , true ),
685
+ array ('!=2.3.0 ' , '!=2.3.0.0 ' , true ),
686
+ array ('<>2.3.0 ' , '!=2.3.0.1 ' , true ),
687
+
688
+ array ('!=2.3.0 ' , '<>1.5.8 ' , true ),
689
+ array ('<>2.3.0 ' , '<>2.3 ' , true ),
690
+ array ('!=2.3.0 ' , '<>2.3.0.1 ' , true ),
691
+
692
+ array ('!=2.3.0 ' , '~1.5.8 ' , true ),
693
+ array ('!=2.3.0 ' , '~2.3 ' , true ),
694
+ array ('!=2.3.0 ' , '~2.4. ' , true ),
695
+
696
+ array ('~2.3.0 ' , '1.5.8 ' , false ),
697
+
698
+ array ('~2.3.5 ' , '>2.3.0 ' , true ),
699
+ array ('~2.3.5 ' , '>2.3.5 ' , true ),
700
+ array ('~2.3.5 ' , '>2.3.6 ' , true ),
701
+
702
+ array ('~2.3.5 ' , '>=2.3.0 ' , true ),
703
+ array ('~2.3.5 ' , '>=2.3.5 ' , true ),
704
+ array ('~2.3.5 ' , '>=2.3.6 ' , true ),
705
+
706
+ array ('~2.3.5 ' , '<2.3.5 ' , false ),
707
+ array ('~2.3.5 ' , '<2.3.6 ' , true ),
708
+ array ('~2.3.5 ' , '<2.4.0 ' , true ),
709
+
710
+ array ('~2.3.5 ' , '<=2.3.5 ' , true ),
711
+ array ('~2.3.5 ' , '<=2.3.6 ' , true ),
712
+ array ('~2.3.5 ' , '<=2.4.0 ' , true ),
713
+
714
+ array ('~2.3.5 ' , '!=2.3.0 ' , true ),
715
+ array ('~2.3.5 ' , '!=2.3.6 ' , true ),
716
+ array ('~2.3.5 ' , '<>2.4.0 ' , true ),
717
+
718
+ array ('~2.3.5 ' , '~2.3 ' , true ),
719
+ array ('~2.3.5 ' , '~2.4 ' , false ),
720
+ array ('~2.3.5 ' , '~2.3 ' , true ),
721
+ array ('~2.4.5 ' , '~2.3 ' , true ),
722
+ array ('~2.3 ' , '~2.3.2 ' , true ),
723
+ array ('~2.4 ' , '~2.3.4 ' , false ),
724
+ array ('~2.3.5 ' , '~2.3.5 ' , true ),
725
+ );
726
+ }
727
+
479
728
}
0 commit comments