@Test
  public void testCreateService() {
    assertTrue(serviceDao.findAll().isEmpty());

    serviceDao.create(service1);
    assertEquals(serviceDao.findAll().size(), 1);
  }
  @Test
  public void testFindById() {
    serviceDao.create(service1);
    Service found = serviceDao.findById(service1.getId());

    assertEquals(found, service1);
  }
  @Test
  public void testUpdateService() {
    serviceDao.create(service1);
    assertEquals("Engine oil replacement", service1.getName());

    service1.setName("Barum");
    service1.setPrice(new BigDecimal("333.00"));
    serviceDao.update(service1);

    Service updatedService = serviceDao.findById(service1.getId());
    assertEquals("Barum", updatedService.getName());
    assertEquals(updatedService.getPrice(), new BigDecimal("333.00"));
  }
  @Test
  public void testFindServicesWithPriceBetween() {
    serviceDao.create(service1);
    serviceDao.create(service2);

    BigDecimal thousand = new BigDecimal("1000.00");
    BigDecimal fiveHundred = new BigDecimal("500.00");

    assertEquals(serviceDao.getServicesWithPriceBetween(BigDecimal.ONE, thousand).size(), 2);
    assertEquals(serviceDao.getServicesWithPriceBetween(BigDecimal.ONE, fiveHundred).size(), 1);
    assertEquals(serviceDao.getServicesWithPriceBetween(fiveHundred, thousand).size(), 1);
    assertEquals(serviceDao.getServicesWithPriceBetween(BigDecimal.ONE, BigDecimal.TEN).size(), 0);
  }
  @Test
  public void testFindAllServices() {
    serviceDao.create(service1);

    List<Service> foundServices = serviceDao.findAll();
    assertTrue(foundServices.contains(service1));
    assertFalse(foundServices.contains(service2));

    serviceDao.create(service2);

    foundServices = serviceDao.findAll();
    assertTrue(foundServices.contains(service1));
    assertTrue(foundServices.contains(service2));
  }
 @Test(expectedExceptions = DataAccessException.class)
 public void testTwoServicesWithSameName() {
   service1.setName("Barum");
   service2.setName("Barum");
   serviceDao.create(service1);
   serviceDao.create(service2);
 }
 @Test(expectedExceptions = ConstraintViolationException.class)
 public void testNullPrice() {
   service1.setPrice(null);
   serviceDao.create(service1);
 }