12637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin/*
22637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * Copyright (c) 2007 Mockito contributors
32637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * This program is made available under the terms of the MIT License.
42637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin */
52637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
62637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpackage org.mockito.internal.matchers;
72637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
82637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.junit.Test;
92637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockitoutil.TestBase;
102637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
112637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport java.math.BigDecimal;
122637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
132637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport static junit.framework.TestCase.assertEquals;
142637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport static junit.framework.TestCase.assertTrue;
152637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
162637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpublic class ComparableMatchersTest extends TestBase {
172637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
182637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
192637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void testLessThan() {
202637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        test(new LessThan<String>("b"), true, false, false, "lt");
212637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
222637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
232637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
242637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void testGreaterThan() {
252637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        test(new GreaterThan<String>("b"), false, true, false, "gt");
262637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
272637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
282637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
292637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void testLessOrEqual() {
302637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        test(new LessOrEqual<String>("b"), true, false, true, "leq");
312637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
322637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
332637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
342637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void testGreaterOrEqual() {
352637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        test(new GreaterOrEqual<String>("b"), false, true, true, "geq");
362637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
372637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
382637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
392637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void testCompareEqual() {
402637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        test(new CompareEqual<String>("b"), false, false, true, "cmpEq");
412637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
422637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        // Make sure it works when equals provide a different result than compare
432637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        CompareEqual<BigDecimal> cmpEq = new CompareEqual<BigDecimal>(new BigDecimal("5.00"));
442637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertTrue(cmpEq.matches(new BigDecimal("5")));
452637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
462637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
472637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    private void test(CompareTo<String> compareTo, boolean lower, boolean higher,
482637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin            boolean equals, String name) {
492637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
502637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals(lower, compareTo.matches("a"));
512637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals(equals, compareTo.matches("b"));
522637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals(higher, compareTo.matches("c"));
532637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
542637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals(name + "(b)", compareTo.toString());
552637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
562637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin}
57