package com.freetmp.maven.mbg.extend.plugin; import com.freetmp.mbg.constant.DatabaseType; import com.freetmp.xmbg.test.entity.User; import com.freetmp.xmbg.test.entity.UserExample; import org.junit.Test; import java.util.ArrayList; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; /** * Created by pin on 2015/6/1. */ public class UpdateTest extends XmbgBaseTest { @Test public void testUpdateByExampleSelective() { // update with all field non null User user = buildUser(2L); UserExample example = new UserExample(); example.createCriteria().andIdEqualTo(user.getId()); int rows = mapper.updateByExampleSelective(user, example); assertThat(rows).isEqualTo(1); User loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate"); // update with roles null user.setRoles(null); rows = mapper.updateByExampleSelective(user, example); assertThat(rows).isEqualTo(1); loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(loaded.getRoles()).isNotNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate", "roles"); } @Test public void testUpdateByExample() { // update with all field non null User user = buildUser(2L); UserExample example = new UserExample(); example.createCriteria().andIdEqualTo(user.getId()); int rows = mapper.updateByExample(user, example); assertThat(rows).isEqualTo(1); User loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate"); // update with roles null user.setRoles(null); rows = mapper.updateByExample(user, example); assertThat(rows).isEqualTo(1); loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(loaded.getRoles()).isNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate"); } @Test public void testUpdateByPrimaryKeySelective() { // update with all field non null User user = buildUser(2L); int rows = mapper.updateByPrimaryKeySelective(user); assertThat(rows).isEqualTo(1); User loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate"); // update with roles null user.setRoles(null); rows = mapper.updateByPrimaryKeySelective(user); assertThat(rows).isEqualTo(1); loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(loaded.getRoles()).isNotNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate", "roles"); } @Test public void testUpdateByPrimaryKey() { // update with all field non null User user = buildUser(2L); int rows = mapper.updateByPrimaryKey(user); assertThat(rows).isEqualTo(1); User loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate"); // update with roles null user.setRoles(null); rows = mapper.updateByPrimaryKey(user); assertThat(rows).isEqualTo(1); loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(loaded.getRoles()).isNull(); assertThat(user).isEqualToIgnoringGivenFields(loaded, "registerDate"); } @Test public void testBatchUpdate() { // jump unsupported database if(isUnsupported(DatabaseType.HSQLDB)) return; // update with all field non null List<User> list = new ArrayList<>(); list.add(buildUser(1L)); list.add(buildUser(2L)); int rows = mapper.batchUpdate(list); assertThat(rows).isGreaterThan(0); for (User user : list) { User loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(loaded.getRoles()).isNotNull(); assertThat(loaded).isEqualToIgnoringGivenFields(user, "registerDate"); } // update with roles null for (User user : list) { user.setRoles(null); } rows = mapper.batchUpdate(list); assertThat(rows).isGreaterThan(0); for (User user : list) { User loaded = mapper.selectByPrimaryKey(user.getId()); assertThat(loaded).isNotNull(); assertThat(loaded.getRoles()).isNotNull(); assertThat(loaded).isEqualToIgnoringGivenFields(user, "registerDate", "roles"); } } }