// Path: src/main/java/com/shop/dao/CartMapper.java
// public interface CartMapper {
//     int deleteByPrimaryKey(Integer id);
// 
//     int insert(Cart record);
// 
//     int insertSelective(Cart record);
// 
//     Cart selectByPrimaryKey(Integer id);
// 
//     int updateByPrimaryKeySelective(Cart record);
// 
//     int updateByPrimaryKey(Cart record);
//     
//     /**
//      * 返回用户所有购物车
//      * @param userId
//      * @return
//      */
//     List<Cart> selectByUserId(Integer userId);
//     
//     /**
//      * 返回用户所有勾选或未勾选的购物车
//      * @param userId
//      * @param selected
//      * @return
//      */
//     List<Cart> selectByUserIdSelected(@Param("userId")Integer userId, @Param("selected")int selected);
//     
//     /**
//      * 返回指定用户所有购物车以及对应商品
//      * @param userId
//      * @return
//      */
//     List<CartGoodsBo> selectAllCartGoods(Integer userId);
//     
//     int batchUpdate(List<Cart> cartList);
//     
//     int batchUpdateTest(List<Cart> cartList);
//     
//     /**
//      * 返回用户所有勾选的购物车对应的商品信息
//      * @param userId
//      * @return
//      */
//     List<Goods> selectGoodsByUserId(Integer userId);
//     
//     List<com.shop.bo.order.CartGoodsBo> querySelectedCartGoods(Integer userId);
//     
//     int batchDelete(List<com.shop.bo.order.CartGoodsBo> cartGoodsBoList);
//     
//     /**
//      * 返回用户指定购物车
//      */
//     Cart selectCartByGoodsId(@Param("userId")Integer userId, @Param("goodsId")Integer goodsId);
//     
//     int deleteByCartIdUserId(@Param("userId")Integer userId, @Param("cartId")Integer cartId);
// }
// 
// Path: src/main/java/com/shop/pojo/Cart.java
// public class Cart {
//     private Integer id;
// 
//     private Integer userId;
// 
//     private Integer goodsId;
// 
//     private BigDecimal price;
// 
//     private Integer quantity;
// 
//     private Integer selected;
// 
//     private Date createTime;
// 
//     private Date updateTime;
// 
//     public Cart(Integer id, Integer userId, Integer goodsId, BigDecimal price, Integer quantity, Integer selected, Date createTime, Date updateTime) {
//         this.id = id;
//         this.userId = userId;
//         this.goodsId = goodsId;
//         this.price = price;
//         this.quantity = quantity;
//         this.selected = selected;
//         this.createTime = createTime;
//         this.updateTime = updateTime;
//     }
// 
//     public Cart() {
//         super();
//     }
// 
//     public Integer getId() {
//         return id;
//     }
// 
//     public void setId(Integer id) {
//         this.id = id;
//     }
// 
//     public Integer getUserId() {
//         return userId;
//     }
// 
//     public void setUserId(Integer userId) {
//         this.userId = userId;
//     }
// 
//     public Integer getGoodsId() {
//         return goodsId;
//     }
// 
//     public void setGoodsId(Integer goodsId) {
//         this.goodsId = goodsId;
//     }
// 
//     public BigDecimal getPrice() {
//         return price;
//     }
// 
//     public void setPrice(BigDecimal price) {
//         this.price = price;
//     }
// 
//     public Integer getQuantity() {
//         return quantity;
//     }
// 
//     public void setQuantity(Integer quantity) {
//         this.quantity = quantity;
//     }
// 
//     public Integer getSelected() {
//         return selected;
//     }
// 
//     public void setSelected(Integer selected) {
//         this.selected = selected;
//     }
// 
//     public Date getCreateTime() {
//         return createTime;
//     }
// 
//     public void setCreateTime(Date createTime) {
//         this.createTime = createTime;
//     }
// 
//     public Date getUpdateTime() {
//         return updateTime;
//     }
// 
//     public void setUpdateTime(Date updateTime) {
//         this.updateTime = updateTime;
//     }
// }


import static org.junit.Assert.*;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.BeforeClass;
import org.junit.Test;
import com.shop.dao.CartMapper;
import com.shop.pojo.Cart;
package shop;





/**
 * 测试失败，mybatisConfig.xml配置错误
 * @author WY
 *
 */
public class MybatisTest {

	private static SqlSessionFactory sqlSessionFactory;

	@BeforeClass
	public static void setUp() throws Exception {
		// create an SqlSessionFactory
		Reader reader = Resources.getResourceAsReader("mybatisConfig.xml");
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		reader.close();

		// populate in-memory database
//		SqlSession session = sqlSessionFactory.openSession();
//		Connection conn = session.getConnection();
//		reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/basetest/CreateDB.sql");
//		ScriptRunner runner = new ScriptRunner(conn);
//		runner.setLogWriter(null);
//		runner.runScript(reader);
//		conn.close();
//		reader.close();
//		session.close();
	}

	@Test
	public void shouldGetACart() {
		SqlSession sqlSession = sqlSessionFactory.openSession();
		try {
			CartMapper cartMapper = sqlSession.getMapper(CartMapper.class);
// Path: src/main/java/com/shop/dao/CartMapper.java
// public interface CartMapper {
//     int deleteByPrimaryKey(Integer id);
// 
//     int insert(Cart record);
// 
//     int insertSelective(Cart record);
// 
//     Cart selectByPrimaryKey(Integer id);
// 
//     int updateByPrimaryKeySelective(Cart record);
// 
//     int updateByPrimaryKey(Cart record);
//     
//     /**
//      * 返回用户所有购物车
//      * @param userId
//      * @return
//      */
//     List<Cart> selectByUserId(Integer userId);
//     
//     /**
//      * 返回用户所有勾选或未勾选的购物车
//      * @param userId
//      * @param selected
//      * @return
//      */
//     List<Cart> selectByUserIdSelected(@Param("userId")Integer userId, @Param("selected")int selected);
//     
//     /**
//      * 返回指定用户所有购物车以及对应商品
//      * @param userId
//      * @return
//      */
//     List<CartGoodsBo> selectAllCartGoods(Integer userId);
//     
//     int batchUpdate(List<Cart> cartList);
//     
//     int batchUpdateTest(List<Cart> cartList);
//     
//     /**
//      * 返回用户所有勾选的购物车对应的商品信息
//      * @param userId
//      * @return
//      */
//     List<Goods> selectGoodsByUserId(Integer userId);
//     
//     List<com.shop.bo.order.CartGoodsBo> querySelectedCartGoods(Integer userId);
//     
//     int batchDelete(List<com.shop.bo.order.CartGoodsBo> cartGoodsBoList);
//     
//     /**
//      * 返回用户指定购物车
//      */
//     Cart selectCartByGoodsId(@Param("userId")Integer userId, @Param("goodsId")Integer goodsId);
//     
//     int deleteByCartIdUserId(@Param("userId")Integer userId, @Param("cartId")Integer cartId);
// }
// 
// Path: src/main/java/com/shop/pojo/Cart.java
// public class Cart {
//     private Integer id;
// 
//     private Integer userId;
// 
//     private Integer goodsId;
// 
//     private BigDecimal price;
// 
//     private Integer quantity;
// 
//     private Integer selected;
// 
//     private Date createTime;
// 
//     private Date updateTime;
// 
//     public Cart(Integer id, Integer userId, Integer goodsId, BigDecimal price, Integer quantity, Integer selected, Date createTime, Date updateTime) {
//         this.id = id;
//         this.userId = userId;
//         this.goodsId = goodsId;
//         this.price = price;
//         this.quantity = quantity;
//         this.selected = selected;
//         this.createTime = createTime;
//         this.updateTime = updateTime;
//     }
// 
//     public Cart() {
//         super();
//     }
// 
//     public Integer getId() {
//         return id;
//     }
// 
//     public void setId(Integer id) {
//         this.id = id;
//     }
// 
//     public Integer getUserId() {
//         return userId;
//     }
// 
//     public void setUserId(Integer userId) {
//         this.userId = userId;
//     }
// 
//     public Integer getGoodsId() {
//         return goodsId;
//     }
// 
//     public void setGoodsId(Integer goodsId) {
//         this.goodsId = goodsId;
//     }
// 
//     public BigDecimal getPrice() {
//         return price;
//     }
// 
//     public void setPrice(BigDecimal price) {
//         this.price = price;
//     }
// 
//     public Integer getQuantity() {
//         return quantity;
//     }
// 
//     public void setQuantity(Integer quantity) {
//         this.quantity = quantity;
//     }
// 
//     public Integer getSelected() {
//         return selected;
//     }
// 
//     public void setSelected(Integer selected) {
//         this.selected = selected;
//     }
// 
//     public Date getCreateTime() {
//         return createTime;
//     }
// 
//     public void setCreateTime(Date createTime) {
//         this.createTime = createTime;
//     }
// 
//     public Date getUpdateTime() {
//         return updateTime;
//     }
// 
//     public void setUpdateTime(Date updateTime) {
//         this.updateTime = updateTime;
//     }
// }


// Path: src/test/java/shop/MybatisTest.java
import static org.junit.Assert.*;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.BeforeClass;
import org.junit.Test;
import com.shop.dao.CartMapper;
import com.shop.pojo.Cart;

package shop;





/**
 * 测试失败，mybatisConfig.xml配置错误
 * @author WY
 *
 */
public class MybatisTest {

	private static SqlSessionFactory sqlSessionFactory;

	@BeforeClass
	public static void setUp() throws Exception {
		// create an SqlSessionFactory
		Reader reader = Resources.getResourceAsReader("mybatisConfig.xml");
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		reader.close();

		// populate in-memory database
//		SqlSession session = sqlSessionFactory.openSession();
//		Connection conn = session.getConnection();
//		reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/basetest/CreateDB.sql");
//		ScriptRunner runner = new ScriptRunner(conn);
//		runner.setLogWriter(null);
//		runner.runScript(reader);
//		conn.close();
//		reader.close();
//		session.close();
	}

	@Test
	public void shouldGetACart() {
		SqlSession sqlSession = sqlSessionFactory.openSession();
		try {
			CartMapper cartMapper = sqlSession.getMapper(CartMapper.class);
			Cart cart = cartMapper.selectByPrimaryKey(301);