package com.sheetsj.car; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import java.util.List; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import com.sheetsj.manufacturer.Manufacturer; import com.sheetsj.manufacturer.ManufacturerRepository; import com.sheetsj.test.IntegrationTestBaseClass; public class CarRepositoryIT extends IntegrationTestBaseClass { @Autowired private CarRepository carRepository; @Autowired private ManufacturerRepository manufacturerRepository; /** * Demonstrating old-school JUnit Style assertEquals statements * * Notice the 'backwards' thinking of putting the expected value before the actual value */ @Test public void testFindByModel() { Manufacturer make = new Manufacturer("JunitMotors"); make = manufacturerRepository.save(make); Car car = new Car(2013, make, "JunitModel", "LT FWD 3.6L V6 DOHC 24V"); car = carRepository.save(car); List<Car> results = carRepository.findByModel("JunitModel"); assertEquals(1, results.size()); Car result = results.get(0); assertEquals(2013, result.getYear().intValue()); assertEquals("JunitMotors", result.getMake().getName()); assertEquals(make.getId(), result.getMake().getId()); assertEquals(car.getDescription(), result.getDescription()); } /** * Now using Hamcrest for the same matchers */ @Test public void testFindByModel_withHamcrest() { Manufacturer make = new Manufacturer("JunitMotors"); make = manufacturerRepository.save(make); Car car = new Car(2013, make, "JunitModel", "LT FWD 3.6L V6 DOHC 24V"); car = carRepository.save(car); List<Car> results = carRepository.findByModel("JunitModel"); assertEquals(1, results.size()); Car result = results.get(0); assertThat(result.getYear().intValue(), is(equalTo(2013))); assertThat(result.getMake().getName(), is("JunitMotors")); assertThat(result.getMake().getId(), is(make.getId())); assertThat(result.getDescription(), is(car.getDescription())); //containsString //equalToIgnoringCase } }