@Test
  public void testSaveProduct() {
    // setup product
    Product product = new Product();
    product.setDescription("Spring Framework Guru Shirt");
    product.setPrice(new BigDecimal("18.95"));
    product.setProductId("1234");

    // save product, verify has ID value after save
    assertNull(product.getId()); // null before save
    productRepository.save(product);
    assertNotNull(product.getId()); // not null after save

    // fetch from DB
    Product fetchedProduct = productRepository.findOne(product.getId());

    // should not be null
    assertNotNull(fetchedProduct);

    // should equal
    assertEquals(product.getId(), fetchedProduct.getId());
    assertEquals(product.getDescription(), fetchedProduct.getDescription());

    // update description and save
    fetchedProduct.setDescription("New Description");
    productRepository.save(fetchedProduct);

    // get from DB, should be updated
    Product fetchedUpdatedProduct = productRepository.findOne(fetchedProduct.getId());
    assertEquals(fetchedProduct.getDescription(), fetchedUpdatedProduct.getDescription());

    // verify count of products in DB
    long productCount = productRepository.count();
    assertEquals(productCount, 1);

    // get all products, list should only have one
    Iterable<Product> products = productRepository.findAll();

    int count = 0;

    for (Product p : products) {
      count++;
    }

    assertEquals(count, 1);
  }
 @Test
 public void testCount() {
   Assert.assertEquals(4, repo.count());
 }