package com.freetmp.maven.mbg.extend.plugin;
import com.freetmp.xmbg.test.entity.User;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Created by pin on 2015/6/1.
*/
public class UpsertTest extends XmbgBaseTest {
@Test
public void testUpsert() {
User user = buildUser(3L);
// user is new
int rows = mapper.upsert(user, new String[]{"id", "name"});
assertThat(rows).isEqualTo(1);
User loaded = mapper.selectByPrimaryKey(3L);
assertThat(loaded).isNotNull();
assertThat(loaded).isEqualToIgnoringGivenFields(user, "registerDate");
// user has been in the db
user.setRoles("admin");
user.setLoginName("admin_test");
rows = mapper.upsert(user, new String[]{"id", "name"});
assertThat(rows).isGreaterThanOrEqualTo(0);
loaded = mapper.selectByPrimaryKey(3L);
assertThat(loaded).isNotNull();
assertThat(loaded).isEqualToIgnoringGivenFields(user, "registerDate");
}
@Test
public void testUpsertSelective(){
User user = buildUser(4L);
user.setRoles(null);
// user is new
int rows = mapper.upsertSelective(user, new String[]{"id", "name"});
assertThat(rows).isEqualTo(1);
User loaded = mapper.selectByPrimaryKey(4L);
assertThat(loaded).isNotNull();
assertThat(loaded).isEqualToIgnoringGivenFields(user, "registerDate");
// user has been in the db
user.setRoles("admin");
user.setLoginName("admin_test");
rows = mapper.upsert(user, new String[]{"id", "name"});
assertThat(rows).isGreaterThanOrEqualTo(0);
loaded = mapper.selectByPrimaryKey(4L);
assertThat(loaded).isNotNull();
assertThat(loaded).isEqualToIgnoringGivenFields(user, "registerDate");
}
}