package devopsdistilled.operp.server.data.repo;
import static org.hamcrest.CoreMatchers.is;
import javax.inject.Inject;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import devopsdistilled.operp.server.context.AppContext;
import devopsdistilled.operp.server.data.entity.items.Brand;
import devopsdistilled.operp.server.data.entity.items.Item;
import devopsdistilled.operp.server.data.entity.items.Product;
import devopsdistilled.operp.server.data.repo.items.BrandRepository;
import devopsdistilled.operp.server.data.repo.items.ItemRepository;
import devopsdistilled.operp.server.data.repo.items.ProductRepository;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { AppContext.class })
public class ItemRepositoryTest {
@Inject
private ItemRepository itemRepository;
@Inject
private ProductRepository productRepository;
@Inject
private BrandRepository brandRepository;
private Item item;
private Product product;
private Brand brand;
@Before
public void setUp() throws Exception {
item = new Item();
product = new Product();
brand = new Brand();
Assert.assertNotNull(itemRepository);
Assert.assertNotNull(productRepository);
Assert.assertNotNull(brandRepository);
}
@Test
public void testFindByProductNameAndBrandName() {
product.setProductName("Product One");
brand.setBrandName("Brand One");
product = productRepository.saveAndFlush(product);
brand = brandRepository.saveAndFlush(brand);
item.setItemName("Item One");
item.setProduct(product);
item.setBrand(brand);
item = itemRepository.saveAndFlush(item);
Item returnedItem = itemRepository
.findByProductAndBrand(product, brand);
Assert.assertThat(item, is(returnedItem));
}
@Test
public void testSave() {
item.setItemName("Test Item");
Item savedItem = itemRepository.save(item);
Assert.assertThat(item.getItemName(), is(savedItem.getItemName()));
}
}