JUNIT 4テスト

2485 ワード


/**
 * 
 */
package bookstore.testcase;

import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;

import bookstore.exception.StockLineEmptyException;
import bookstore.exception.StockLineExistedException;
import bookstore.model.Item;
import bookstore.model.Stock;


/**
 * @author badboy
 *
 */
public class TestStock {
	private Stock stock;
	Item stockLine1;
	Item stockLine2;
	Item stockLine3;
	Item stockLine4;
	
	@Before
	public void before() throws StockLineExistedException{
		stock = new Stock();
		stockLine1 = new Item("book1","This is book1",99.9f,100);
		stockLine2 = new Item("book2","This is book2",88,2);
		stockLine3 = new Item("book3","This is book3",99,1);
		stockLine4 = new Item("book4","This is book4",10,0);
		stock.createStockLine(stockLine1);
		stock.createStockLine(stockLine2);
		stock.createStockLine(stockLine3);
		stock.createStockLine(stockLine4);
	}
	
	@Test(expected=StockLineExistedException.class)
	/*
	 * test duplicate case
	 */
	public void testCreateStockLine() throws StockLineExistedException{
		stock.createStockLine(stockLine1);
	}
	


	@Test
	public void testGetStockLine(){
		String bookId = "book1";
		Item item = stock.getStockLine(bookId);
		assertEquals(bookId,item.getId());
		assertEquals("This is book1",item.getDescription());
		assertEquals(new Float(99.9f),new Float(item.getPrice()));
		assertEquals(100,item.getRemaining());
	}
	
	@Test
	public void testQuantityOperation() throws StockLineEmptyException{
		Item item = stock.getStockLine("book1");
		stock.removeQuantity(item,99);
		assertEquals(1,stock.getStockLine("book1").getRemaining());
		stock.addQuantity(item, 50);
		assertEquals(51,stock.getStockLine("book1").getRemaining());
	}
	@Test(expected = StockLineEmptyException.class)
	public void testQuantityException() throws StockLineEmptyException {
		Item item = stock.getStockLine("book3");
		stock.removeQuantity(item,2);
		
		
	}
	
}