By
using ‘greaterThanOrEqualTo’ method, you can create a matcher of Comparable
object that matches when the examined object is greater than or equal to the
specified value.
Ex
assertThat("2
is >= 1", 2, greaterThanOrEqualTo(1));
assertThat("2
is >= 2", 2, greaterThanOrEqualTo(2));
Find
the below working application.
TestApp.java
package com.sample.tests; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.greaterThanOrEqualTo; import org.junit.Test; public class TestApp { @Test public void testmethod() { assertThat("2 is >= 1", 2, greaterThanOrEqualTo(1)); assertThat("2 is >= 2", 2, greaterThanOrEqualTo(2)); } }
As
you see the signature of greaterThanOrEqualTo method, you can call this method
on any Comparable instances.
public static <T
extends java.lang.Comparable<T>> org.hamcrest.Matcher<T>
greaterThanOrEqualTo(T value)
Let
me try to compare whether one employee greater than or equal to other based on
their experience in the organization.
public
class Employee implements Comparable<Employee> {
....
....
public int compareTo(Employee emp) {
if (emp == null)
return 1;
return
this.experience.compareTo(emp.experience);
}
}
Since
Employee class is implementing Comparable interface, we can use greaterThanOrEqualTo
matcher to compare two employee objects.
Ex
assertThat("emp2
is >= emp1", emp2, greaterThanOrEqualTo(emp1));
assertThat("emp2
is >= emp3", emp2, greaterThanOrEqualTo(emp3));
Employee.java
package com.sample.model; public class Employee implements Comparable<Employee> { private int id; private String name; private Double experience; public Employee(int id, String name, Double experience) { this.id = id; this.name = name; this.experience = experience; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getExperience() { return experience; } public void setExperience(double experience) { this.experience = experience; } public int compareTo(Employee emp) { if (emp == null) return 1; return this.experience.compareTo(emp.experience); } }
TestApp.java
package com.sample.tests; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.greaterThanOrEqualTo; import org.junit.Test; import com.sample.model.Employee; public class TestApp { @Test public void testmethod() { Employee emp1 = new Employee(1, "Krishna", 5.6); Employee emp2 = new Employee(2, "Chamu", 6.1); Employee emp3 = new Employee(3, "Gopi", 5.6); assertThat("emp2 is >= emp1", emp2, greaterThanOrEqualTo(emp1)); assertThat("emp2 is >= emp3", emp2, greaterThanOrEqualTo(emp3)); } }
No comments:
Post a Comment