@@ -617,6 +617,174 @@ func TestIgnore(t *testing.T) {
617
617
}
618
618
}
619
619
620
+ func TestLHS (t * testing.T ) {
621
+ validLHSTypesGetter := Differ (& types {
622
+ lhs : 42 ,
623
+ rhs : "hello" ,
624
+ })
625
+ v , err := LHS (validLHSTypesGetter )
626
+ if err != nil {
627
+ t .Errorf ("LHS(%+v): unexpected error: %s" , validLHSTypesGetter , err )
628
+ }
629
+ if i , ok := v .(int ); ! ok || i != 42 {
630
+ t .Errorf ("LHS(%+v) = %v, expected %d" , validLHSTypesGetter , v , 42 )
631
+ }
632
+
633
+ validLHSMapGetter := Differ (& mapDiff {
634
+ lhs : 42 ,
635
+ rhs : "hello" ,
636
+ })
637
+ v , err = LHS (validLHSMapGetter )
638
+ if err != nil {
639
+ t .Errorf ("LHS(%+v): unexpected error: %s" , validLHSMapGetter , err )
640
+ }
641
+ if i , ok := v .(int ); ! ok || i != 42 {
642
+ t .Errorf ("LHS(%+v) = %v, expected %d" , validLHSMapGetter , v , 42 )
643
+ }
644
+
645
+ validLHSSliceGetter := Differ (& slice {
646
+ lhs : 42 ,
647
+ rhs : "hello" ,
648
+ })
649
+ v , err = LHS (validLHSSliceGetter )
650
+ if err != nil {
651
+ t .Errorf ("LHS(%+v): unexpected error: %s" , validLHSSliceGetter , err )
652
+ }
653
+ if i , ok := v .(int ); ! ok || i != 42 {
654
+ t .Errorf ("LHS(%+v) = %v, expected %d" , validLHSSliceGetter , v , 42 )
655
+ }
656
+
657
+ validLHSScalarGetter := Differ (& scalar {
658
+ lhs : 42 ,
659
+ rhs : "hello" ,
660
+ })
661
+ v , err = LHS (validLHSScalarGetter )
662
+ if err != nil {
663
+ t .Errorf ("LHS(%+v): unexpected error: %s" , validLHSScalarGetter , err )
664
+ }
665
+ if i , ok := v .(int ); ! ok || i != 42 {
666
+ t .Errorf ("LHS(%+v) = %v, expected %d" , validLHSScalarGetter , v , 42 )
667
+ }
668
+
669
+ validLHSSliceMissingGetter := Differ (& sliceMissing {
670
+ value : 42 ,
671
+ })
672
+ v , err = LHS (validLHSSliceMissingGetter )
673
+ if err != nil {
674
+ t .Errorf ("LHS(%+v): unexpected error: %s" , validLHSSliceMissingGetter , err )
675
+ }
676
+ if i , ok := v .(int ); ! ok || i != 42 {
677
+ t .Errorf ("LHS(%+v) = %v, expected %d" , validLHSSliceMissingGetter , v , 42 )
678
+ }
679
+
680
+ validLHSMapMissingGetter := Differ (& mapMissing {
681
+ value : 42 ,
682
+ })
683
+ v , err = LHS (validLHSMapMissingGetter )
684
+ if err != nil {
685
+ t .Errorf ("LHS(%+v): unexpected error: %s" , validLHSMapMissingGetter , err )
686
+ }
687
+ if i , ok := v .(int ); ! ok || i != 42 {
688
+ t .Errorf ("LHS(%+v) = %v, expected %d" , validLHSMapMissingGetter , v , 42 )
689
+ }
690
+
691
+ invalidLHSGetter := ignore {}
692
+ _ , err = LHS (invalidLHSGetter )
693
+ if err == nil {
694
+ t .Errorf ("LHS(%+v): expected error, got nil instead" , invalidLHSGetter )
695
+ }
696
+ if _ , ok := err .(ErrLHSNotSupported ); ! ok {
697
+ t .Errorf ("LHS(%+v): expected error to be of type %T, got %T instead" , invalidLHSGetter , ErrLHSNotSupported {}, err )
698
+ }
699
+ if err .Error () == "" {
700
+ t .Errorf ("LHS(%+v): unexpected empty error message" )
701
+ }
702
+ }
703
+
704
+ func TestRHS (t * testing.T ) {
705
+ validRHSTypesGetter := Differ (& types {
706
+ lhs : 42 ,
707
+ rhs : "hello" ,
708
+ })
709
+ v , err := RHS (validRHSTypesGetter )
710
+ if err != nil {
711
+ t .Errorf ("RHS(%+v): unexpected error: %s" , validRHSTypesGetter , err )
712
+ }
713
+ if s , ok := v .(string ); ! ok || s != "hello" {
714
+ t .Errorf ("RHS(%+v) = %v, expected %q" , validRHSTypesGetter , v , "hello" )
715
+ }
716
+
717
+ validRHSMapGetter := Differ (& mapDiff {
718
+ lhs : 42 ,
719
+ rhs : "hello" ,
720
+ })
721
+ v , err = RHS (validRHSMapGetter )
722
+ if err != nil {
723
+ t .Errorf ("RHS(%+v): unexpected error: %s" , validRHSMapGetter , err )
724
+ }
725
+ if s , ok := v .(string ); ! ok || s != "hello" {
726
+ t .Errorf ("RHS(%+v) = %v, expected %q" , validRHSMapGetter , v , "hello" )
727
+ }
728
+
729
+ validRHSSliceGetter := Differ (& slice {
730
+ lhs : 42 ,
731
+ rhs : "hello" ,
732
+ })
733
+ v , err = RHS (validRHSSliceGetter )
734
+ if err != nil {
735
+ t .Errorf ("RHS(%+v): unexpected error: %s" , validRHSSliceGetter , err )
736
+ }
737
+ if s , ok := v .(string ); ! ok || s != "hello" {
738
+ t .Errorf ("RHS(%+v) = %v, expected %q" , validRHSSliceGetter , v , "hello" )
739
+ }
740
+
741
+ validRHSScalarGetter := Differ (& scalar {
742
+ lhs : 42 ,
743
+ rhs : "hello" ,
744
+ })
745
+ v , err = RHS (validRHSScalarGetter )
746
+ if err != nil {
747
+ t .Errorf ("RHS(%+v): unexpected error: %s" , validRHSScalarGetter , err )
748
+ }
749
+ if s , ok := v .(string ); ! ok || s != "hello" {
750
+ t .Errorf ("RHS(%+v) = %v, expected %q" , validRHSScalarGetter , v , "hello" )
751
+ }
752
+
753
+ validRHSSliceExcessGetter := Differ (& sliceExcess {
754
+ value : "hello" ,
755
+ })
756
+ v , err = RHS (validRHSSliceExcessGetter )
757
+ if err != nil {
758
+ t .Errorf ("RHS(%+v): unexpected error: %s" , validRHSSliceExcessGetter , err )
759
+ }
760
+ if s , ok := v .(string ); ! ok || s != "hello" {
761
+ t .Errorf ("RHS(%+v) = %v, expected %q" , validRHSSliceExcessGetter , v , "hello" )
762
+ }
763
+
764
+ validRHSMapExcessGetter := Differ (& mapExcess {
765
+ value : "hello" ,
766
+ })
767
+ v , err = RHS (validRHSMapExcessGetter )
768
+ if err != nil {
769
+ t .Errorf ("RHS(%+v): unexpected error: %s" , validRHSMapExcessGetter , err )
770
+ }
771
+ if s , ok := v .(string ); ! ok || s != "hello" {
772
+ t .Errorf ("RHS(%+v) = %v, expected %q" , validRHSMapExcessGetter , v , "hello" )
773
+ }
774
+
775
+ invalidRHSGetter := ignore {}
776
+ _ , err = RHS (invalidRHSGetter )
777
+ if err == nil {
778
+ t .Errorf ("RHS(%+v): expected error, got nil instead" , invalidRHSGetter )
779
+ }
780
+ if _ , ok := err .(ErrRHSNotSupported ); ! ok {
781
+ t .Errorf ("RHS(%+v): expected error to be of type %T, got %T instead" , invalidRHSGetter , ErrLHSNotSupported {}, err )
782
+ }
783
+ if err .Error () == "" {
784
+ t .Errorf ("RHS(%+v): unexpected empty error message" )
785
+ }
786
+ }
787
+
620
788
func TestReport (t * testing.T ) {
621
789
want := []string {
622
790
"content" ,
0 commit comments