2
2
// SPDX-License-Identifier: Apache-2.0
3
3
4
4
import org .scalatest .Matchers
5
- import org .scalatest .matchers .{MatchResult , Matcher }
5
+ import org .scalatest .matchers .{MatchResult , Matcher , MatcherFactory1 }
6
6
import scalaz .Equal
7
7
8
8
/** Provides the `equalz` [[Matcher ]].
@@ -27,27 +27,19 @@ import scalaz.Equal
27
27
trait Equalz extends Matchers {
28
28
import Equalz .{EqualzInvocation , Lub }
29
29
30
- private [this ] final def equalzImpl [A ](expected : A )(implicit A : Equal [A ]): Matcher [A ] =
31
- actual =>
32
- MatchResult (
33
- A .equal(expected, actual),
34
- s " $actual did not equal $expected" ,
35
- s " $actual equalled $expected"
36
- )
37
-
38
- def equalz [Ac ](ac : Ac ): EqualzInvocation [Ac ] = new EqualzInvocation (ac)
39
-
40
- implicit final class AnyShouldzWrapper [Ex ](private val expected : Ex ) {
41
- def should [Ac , T ](actual : EqualzInvocation [Ac ])(implicit lub : Lub [Ex , Ac , T ], eq : Equal [T ]) =
42
- (lub.left(expected): AnyShouldWrapper [T ]) should equalzImpl(lub.right(actual.actual))
43
- def shouldNot [Ac , T ](actual : EqualzInvocation [Ac ])(implicit lub : Lub [Ex , Ac , T ], eq : Equal [T ]) =
44
- (lub.left(expected): AnyShouldWrapper [T ]) shouldNot equalzImpl(lub.right(actual.actual))
45
- }
30
+ final def equalz [Ex ](expected : Ex ): MatcherFactory1 [Ex , Equal ] =
31
+ new MatcherFactory1 [Ex , Equal ] {
32
+ override def matcher [T <: Ex ](implicit ev : Equal [T ]): Matcher [T ] =
33
+ actual =>
34
+ MatchResult (
35
+ ev.equal(expected, actual),
36
+ s " $actual did not equal $expected" ,
37
+ s " $actual equalled $expected"
38
+ )
39
+ }
46
40
}
47
41
48
42
object Equalz extends Equalz {
49
- final class EqualzInvocation [+ Ac ](private [Equalz ] val actual : Ac ) extends AnyVal
50
-
51
43
sealed abstract class Lub [- A , - B , C ] {
52
44
def left (l : A ): C
53
45
def right (r : B ): C
0 commit comments