// Path: src/main/java/com/micmiu/framework/web/v1/system/entity/User.java
// @Entity
// @Table(name = "T_SYS_USER")
// public class User extends IdEntity {
// 
// 	@ShowParam("system.user.loginName")
// 	@Column(name = "LOGIN_NAME")
// 	private String loginName;
// 
// 	@Column(name = "PASSWORD")
// 	private String password;
// 
// 	@ShowParam("system.user.name")
// 	@Column(name = "NAME")
// 	private String name;
// 
// 	@ShowParam(value = "system.user.email", width = 120)
// 	@Column(name = "EMAIL")
// 	private String email;
// 
// 	@ShowParam("system.user.other")
// 	@Column(name = "OTHER")
// 	private String other;
// 
// 	private String roleId;
// 
// 	private List<Role> roleList = new ArrayList<Role>();
// 
// 	// 多对多定义
// 	@ManyToMany
// 	@JoinTable(name = "T_SYS_U2R", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
// 	// Fecth策略定义
// 	@Fetch(FetchMode.SUBSELECT)
// 	// 集合按id排序.
// 	@OrderBy("id")
// 	// 集合中对象id的缓存.
// 	@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
// 	public List<Role> getRoleList() {
// 		return roleList;
// 	}
// 
// 	@ShowParam(value = "system.user.rolename", width = 200)
// 	@Transient
// 	public String getRoleName() {
// 		List<String> roleNames = new ArrayList<String>();
// 
// 		for (Role role : getRoleList()) {
// 			roleNames.add(role.getRoleName());
// 		}
// 		return StringUtils.join(roleNames, ",");
// 	}
// 
// 	public void setRoleList(List<Role> roleList) {
// 		this.roleList = roleList;
// 	}
// 
// 	public String getLoginName() {
// 		return loginName;
// 	}
// 
// 	@JsonIgnore
// 	public String getPassword() {
// 		return password;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public String getOther() {
// 		return other;
// 	}
// 
// 	public void setLoginName(String loginName) {
// 		this.loginName = loginName;
// 	}
// 
// 	public void setPassword(String password) {
// 		this.password = password;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 
// 	public void setOther(String other) {
// 		this.other = other;
// 	}
// 
// 	@Transient
// 	public String getRoleId() {
// 		if (getRoleList().isEmpty()) {
// 			return null;
// 		}
// 		roleId = getRoleList().get(0).getId() + "";
// 		return roleId;
// 	}
// 
// 	public void setRoleId(String roleId) {
// 		this.roleId = roleId;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return ToStringBuilder.reflectionToString(this);
// 	}
// }
// 
// Path: src/main/java/com/micmiu/framework/web/v1/system/service/UserService.java
// public interface UserService extends BasicService<User, Long> {
// 	User getUserByLoginName(String loginName);
// 
// 	String getPassword(String loginName);
// }


import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import junit.framework.Assert;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
import com.micmiu.framework.web.v1.system.entity.User;
import com.micmiu.framework.web.v1.system.service.UserService;
package com.micmiu.demo.web.v1.test;





@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/applicationContext.xml" })
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class UserServiceTest {

	AtomicInteger atom = new AtomicInteger();

	@Autowired
	private UserService userService;

	@Test
	public void testCreate() {

		int beforeDbCount = userService.findAll().size();

		userService.save(genRandomUser());

		int afterDbCount = userService.findAll().size();

		Assert.assertEquals(beforeDbCount + 1, afterDbCount);
	}

	@Test
	public void testUpdate() {

		User user = genRandomUser();
		Long ID = userService.save(user);
// Path: src/main/java/com/micmiu/framework/web/v1/system/entity/User.java
// @Entity
// @Table(name = "T_SYS_USER")
// public class User extends IdEntity {
// 
// 	@ShowParam("system.user.loginName")
// 	@Column(name = "LOGIN_NAME")
// 	private String loginName;
// 
// 	@Column(name = "PASSWORD")
// 	private String password;
// 
// 	@ShowParam("system.user.name")
// 	@Column(name = "NAME")
// 	private String name;
// 
// 	@ShowParam(value = "system.user.email", width = 120)
// 	@Column(name = "EMAIL")
// 	private String email;
// 
// 	@ShowParam("system.user.other")
// 	@Column(name = "OTHER")
// 	private String other;
// 
// 	private String roleId;
// 
// 	private List<Role> roleList = new ArrayList<Role>();
// 
// 	// 多对多定义
// 	@ManyToMany
// 	@JoinTable(name = "T_SYS_U2R", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
// 	// Fecth策略定义
// 	@Fetch(FetchMode.SUBSELECT)
// 	// 集合按id排序.
// 	@OrderBy("id")
// 	// 集合中对象id的缓存.
// 	@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
// 	public List<Role> getRoleList() {
// 		return roleList;
// 	}
// 
// 	@ShowParam(value = "system.user.rolename", width = 200)
// 	@Transient
// 	public String getRoleName() {
// 		List<String> roleNames = new ArrayList<String>();
// 
// 		for (Role role : getRoleList()) {
// 			roleNames.add(role.getRoleName());
// 		}
// 		return StringUtils.join(roleNames, ",");
// 	}
// 
// 	public void setRoleList(List<Role> roleList) {
// 		this.roleList = roleList;
// 	}
// 
// 	public String getLoginName() {
// 		return loginName;
// 	}
// 
// 	@JsonIgnore
// 	public String getPassword() {
// 		return password;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public String getOther() {
// 		return other;
// 	}
// 
// 	public void setLoginName(String loginName) {
// 		this.loginName = loginName;
// 	}
// 
// 	public void setPassword(String password) {
// 		this.password = password;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 
// 	public void setOther(String other) {
// 		this.other = other;
// 	}
// 
// 	@Transient
// 	public String getRoleId() {
// 		if (getRoleList().isEmpty()) {
// 			return null;
// 		}
// 		roleId = getRoleList().get(0).getId() + "";
// 		return roleId;
// 	}
// 
// 	public void setRoleId(String roleId) {
// 		this.roleId = roleId;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return ToStringBuilder.reflectionToString(this);
// 	}
// }
// 
// Path: src/main/java/com/micmiu/framework/web/v1/system/service/UserService.java
// public interface UserService extends BasicService<User, Long> {
// 	User getUserByLoginName(String loginName);
// 
// 	String getPassword(String loginName);
// }


// Path: src/test/java/com/micmiu/demo/web/v1/test/UserServiceTest.java
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import junit.framework.Assert;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
import com.micmiu.framework.web.v1.system.entity.User;
import com.micmiu.framework.web.v1.system.service.UserService;

package com.micmiu.demo.web.v1.test;





@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/applicationContext.xml" })
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class UserServiceTest {

	AtomicInteger atom = new AtomicInteger();

	@Autowired
	private UserService userService;

	@Test
	public void testCreate() {

		int beforeDbCount = userService.findAll().size();

		userService.save(genRandomUser());

		int afterDbCount = userService.findAll().size();

		Assert.assertEquals(beforeDbCount + 1, afterDbCount);
	}

	@Test
	public void testUpdate() {

		User user = genRandomUser();
		Long ID = userService.save(user);
		String expectedPassword = "123234";