package com.querydsl.collections;
import static com.querydsl.collections.PathComparator.pathComparator;
import static org.junit.Assert.assertEquals;
import java.util.Comparator;
import org.junit.Before;
import org.junit.Test;
public class PathComparatorTest {
private Comparator<Car> comparator;
@Before
public void setUpComparator() {
comparator = pathComparator(QCar.car.horsePower);
}
@Test
public void equalReference() {
Car car = new Car();
assertEquals(0, comparator.compare(car, car));
}
@Test
public void semanticallyEqual() {
Car car = new Car();
car.setModel("car");
car.setHorsePower(50);
Car similarCar = new Car();
similarCar.setModel("car");
similarCar.setHorsePower(50);
assertEquals(0, comparator.compare(car, similarCar));
}
@Test
public void leftIsNull() {
assertEquals(-1, comparator.compare(null, new Car()));
}
@Test
public void rightIsNull() {
assertEquals(1, comparator.compare(new Car(), null));
}
@Test
public void compareOnValue() {
Car car = new Car();
car.setHorsePower(50);
Car betterCar = new Car();
betterCar.setHorsePower(150);
assertEquals(-1, comparator.compare(car, betterCar));
}
}