package com.sheetsj.workitem;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.*;
import java.util.Date;
import java.util.List;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.sheetsj.car.Car;
import com.sheetsj.car.CarRepository;
import com.sheetsj.manufacturer.Manufacturer;
import com.sheetsj.manufacturer.ManufacturerRepository;
import com.sheetsj.provider.Provider;
import com.sheetsj.provider.ProviderRepository;
import com.sheetsj.test.IntegrationTestBaseClass;
public class WorkItemRepositoryIT extends IntegrationTestBaseClass {
@Autowired
private ProviderRepository providerRepository;
@Autowired
private WorkItemRepository workItemRepository;
@Autowired
private ManufacturerRepository manufacturerRepository;
@Autowired
private CarRepository carRepository;
@Test
public void testFindAllAndSave() {
List<WorkItem> original = workItemRepository.findAll();
Manufacturer make = manufacturerRepository.save(new Manufacturer("JUnitMake"));
Car car = carRepository.save(new Car(2013, make, "JunitModel", "LT FWD 3.6L V6 DOHC 24V"));
Provider provider = providerRepository.save(new Provider("Junit Tire Shop", "Shadow Lake"));
WorkItem workItem = new WorkItem(car, new Date(), "Oil Change", provider, 18123L, 60.12, "Took 1:45 so got free oil change coupon");
workItem = workItemRepository.save(workItem);
List<WorkItem> result = workItemRepository.findAll();
assertThat(result, not(nullValue()));
assertThat(result, hasSize(original.size() + 1));
assertThat(result, hasItem(workItem));
}
}