use of indi.mybatis.flying.pagination.PageParam in project mybatis.flying by limeng32.
the class CacheTest method testPaginationUsingCacheIndeed.
/* 一个证明分页确实使用了缓存的测试用例 */
@Test
@IfProfileValue(name = "CACHE", value = "true")
@ExpectedDatabase(connection = "dataSource1", assertionMode = DatabaseAssertionMode.NON_STRICT_UNORDERED, value = "/indi/mybatis/flying/test/cacheTest/testPaginationUsingCacheIndeed.result.xml")
@DatabaseTearDown(connection = "dataSource1", type = DatabaseOperation.DELETE_ALL, value = "/indi/mybatis/flying/test/cacheTest/testPaginationUsingCacheIndeed.result.xml")
public void testPaginationUsingCacheIndeed() {
Role_ role1 = new Role_(), role2 = new Role_(), role3 = new Role_();
role1.setName("normal");
roleService.insert(role1);
role2.setName("silver");
roleService.insert(role2);
role3.setName("gold");
roleService.insert(role3);
Role_Condition rc = new Role_Condition();
rc.setLimiter(new PageParam(1, 2));
rc.setSorter(new SortParam(new Order("name", Conditionable.Sequence.asc)));
Collection<Role_> c1 = roleService.selectAll(rc);
Assert.assertEquals(2, c1.size());
Role_[] roles = c1.toArray(new Role_[c1.size()]);
Assert.assertEquals("gold", roles[0].getName());
Map<String, Object> m = new HashMap<>(4);
m.put("name", "gold1");
m.put("id", roles[0].getId());
roleService.updateDirect(m);
Role_Condition rc2 = new Role_Condition();
rc2.setLimiter(new PageParam(1, 2));
rc2.setSorter(new SortParam(new Order("name", Conditionable.Sequence.asc)));
Collection<Role_> c2 = roleService.selectAll(rc2);
Assert.assertEquals(2, c2.size());
Role_[] roles2 = c2.toArray(new Role_[c2.size()]);
Assert.assertEquals("gold", roles2[0].getName());
}
use of indi.mybatis.flying.pagination.PageParam in project mybatis.flying by limeng32.
the class CacheTest method testClearCache.
/* 测试分页缓存的用例 */
@Test
@IfProfileValue(name = "CACHE", value = "true")
@ExpectedDatabase(assertionMode = DatabaseAssertionMode.NON_STRICT, value = "/indi/mybatis/flying/test/cacheTest/testClearCache.result.xml")
@DatabaseTearDown(type = DatabaseOperation.DELETE_ALL, value = "/indi/mybatis/flying/test/cacheTest/testClearCache.result.xml")
public void testClearCache() {
Role_ r = new Role_(), r2 = new Role_();
r.setId(1);
r.setName("root");
roleService.insert(r);
r2.setId(2);
r2.setName("deployer");
roleService.insert(r2);
Account_ a = new Account_(), a2 = new Account_(), a3 = new Account_(), a4 = new Account_(), a5 = new Account_(), a6 = new Account_(), a7 = new Account_(), a8 = new Account_(), a9 = new Account_(), a10 = new Account_(), a11 = new Account_(), a12 = new Account_();
a.setName("ann");
accountService.insert(a);
a2.setName("bob");
accountService.insert(a2);
a3.setName("caq");
accountService.insert(a3);
a4.setName("don");
accountService.insert(a4);
a5.setName("eli");
accountService.insert(a5);
a6.setName("fea");
accountService.insert(a6);
a7.setName("gus");
accountService.insert(a7);
a8.setName("hex");
accountService.insert(a8);
a9.setName("ivy");
accountService.insert(a9);
a10.setName("jak");
accountService.insert(a10);
a11.setName("kir");
a11.setRole(r);
accountService.insert(a11);
a12.setName("lee");
a12.setRole(r);
accountService.insert(a12);
Account_Condition ac = new Account_Condition();
ac.setLimiter(new PageParam(1, 10));
Collection<Account_> c = accountService.selectAll(ac);
Page<Account_> p = new Page<>(c, ac.getLimiter());
Assert.assertEquals(2, p.getMaxPageNum());
Assert.assertEquals(12, p.getTotalCount());
Assert.assertEquals(1, p.getPageNo());
Assert.assertEquals(10, p.getPageItems().size());
Account_Condition ac2 = new Account_Condition();
ac2.setLimiter(new PageParam(2, 10));
Collection<Account_> c2 = accountService.selectAll(ac2);
Page<Account_> p2 = new Page<>(c2, ac2.getLimiter());
Assert.assertEquals(2, p2.getMaxPageNum());
Assert.assertEquals(12, p2.getTotalCount());
Assert.assertEquals(2, p2.getPageNo());
Assert.assertEquals(2, p2.getPageItems().size());
for (Account_ temp : p2.getPageItems()) {
Assert.assertEquals("root", temp.getRole().getName());
}
a11.setRole(r2);
accountService.update(a11);
a12.setRole(r2);
accountService.update(a12);
Account_Condition ac3 = new Account_Condition();
ac3.setLimiter(new PageParam(2, 10));
Collection<Account_> c3 = accountService.selectAll(ac3);
Page<Account_> p3 = new Page<>(c3, ac3.getLimiter());
Assert.assertEquals(2, p3.getMaxPageNum());
Assert.assertEquals(12, p3.getTotalCount());
Assert.assertEquals(2, p3.getPageNo());
Assert.assertEquals(2, p3.getPageItems().size());
for (Account_ temp : p3.getPageItems()) {
Assert.assertEquals("deployer", temp.getRole().getName());
}
}
use of indi.mybatis.flying.pagination.PageParam in project mybatis.flying by limeng32.
the class CacheTest method testClearCache2.
/* 测试分页缓存能正确清除父对象的用例 */
@Test
@IfProfileValue(name = "CACHE", value = "true")
@ExpectedDatabase(assertionMode = DatabaseAssertionMode.NON_STRICT, value = "/indi/mybatis/flying/test/cacheTest/testClearCache2.result.xml")
@DatabaseTearDown(type = DatabaseOperation.DELETE_ALL, value = "/indi/mybatis/flying/test/cacheTest/testClearCache2.result.xml")
public void testClearCache2() {
Role_ r = new Role_(), r2 = new Role_();
r.setId(1);
r.setName("root");
roleService.insert(r);
r2.setId(2);
r2.setName("deployer");
roleService.insert(r2);
Account_ a = new Account_(), a2 = new Account_(), a3 = new Account_(), a4 = new Account_(), a5 = new Account_(), a6 = new Account_(), a7 = new Account_(), a8 = new Account_(), a9 = new Account_(), a10 = new Account_(), a11 = new Account_(), a12 = new Account_();
a.setName("ann");
a.setEmail("");
a.setRole(r);
accountService.insert(a);
a2.setName("bob");
a2.setEmail("");
a2.setRole(r);
accountService.insert(a2);
a3.setName("caq");
a3.setEmail("");
a3.setRole(r);
accountService.insert(a3);
a4.setName("don");
a4.setEmail("");
a4.setRole(r);
accountService.insert(a4);
a5.setName("eli");
a5.setEmail("");
a5.setRole(r);
accountService.insert(a5);
a6.setName("fea");
a6.setEmail("");
a6.setRole(r);
accountService.insert(a6);
a7.setName("gus");
a7.setEmail("");
a7.setRole(r);
accountService.insert(a7);
a8.setName("hex");
a8.setEmail("");
a8.setRole(r);
accountService.insert(a8);
a9.setName("ivy");
a9.setEmail("");
a9.setRole(r);
accountService.insert(a9);
a10.setName("jak");
a10.setEmail("");
a10.setRole(r);
accountService.insert(a10);
a11.setName("kir");
a11.setEmail("");
a11.setRole(r);
accountService.insert(a11);
a12.setName("lee");
a12.setEmail("");
a12.setRole(r);
accountService.insert(a12);
Role_ role = roleService.select(1);
Account_Condition ac = new Account_Condition();
ac.setLimiter(new PageParam(2, 10));
ac.setEmail("");
Role_ rc = new Role_();
rc.setId(1);
ac.setRole(rc);
Collection<Account_> c = accountService.selectAll(ac);
Page<Account_> p = new Page<>(c, ac.getLimiter());
Assert.assertEquals(2, p.getPageItems().size());
for (Account_ temp : p.getPageItems()) {
Assert.assertEquals("root", temp.getRole().getName());
}
Account_Condition ac1 = new Account_Condition();
ac1.setLimiter(new PageParam(2, 10));
ac1.setEmail("");
Role_ rc1 = new Role_();
rc1.setId(1);
ac1.setRole(rc1);
Collection<Account_> c1 = accountService.selectAll(ac1);
role.setName("rootNew");
roleService.update(role);
Account_Condition ac2 = new Account_Condition();
ac2.setLimiter(new PageParam(2, 10));
ac2.setEmail("");
Role_ rc2 = new Role_();
rc2.setId(1);
ac2.setRole(rc2);
Collection<Account_> c2 = accountService.selectAll(ac2);
Page<Account_> p2 = new Page<>(c2, ac2.getLimiter());
Assert.assertEquals(2, p2.getPageItems().size());
for (Account_ temp : p2.getPageItems()) {
Assert.assertEquals("rootNew", temp.getRole().getName());
}
}
use of indi.mybatis.flying.pagination.PageParam in project mybatis.flying by limeng32.
the class SelectOneTest method testSelectOne2.
/**
* 测试selectOne2
*/
@Test
@DatabaseSetup(type = DatabaseOperation.DELETE_ALL, value = "/indi/mybatis/flying/test/selectOneTest/testSelectOne2.xml")
@ExpectedDatabase(assertionMode = DatabaseAssertionMode.NON_STRICT, value = "/indi/mybatis/flying/test/selectOneTest/testSelectOne2.result.xml")
@DatabaseTearDown(type = DatabaseOperation.DELETE_ALL, value = "/indi/mybatis/flying/test/selectOneTest/testSelectOne2.result.xml")
public void testSelectOne2() {
Account_ a1 = new Account_();
a1.setName("ann");
a1.setEmail("ann@live.cn");
accountService.insert(a1);
Account_ a2 = new Account_();
a2.setName("ann");
a2.setEmail("bob@live.cn");
accountService.insert(a2);
Account_Condition ac = new Account_Condition();
ac.setLimiter(new PageParam(1, 2));
ac.setSorter(new SortParam(new Order("id", Sequence.asc)));
ac.setName("ann");
Account_ account = accountService.selectOne(ac);
Assert.assertEquals("ann@live.cn", account.getEmail());
Assert.assertNull(ac.getLimiter());
}
use of indi.mybatis.flying.pagination.PageParam in project mybatis.flying by limeng32.
the class AccountTest method testLimiter.
/**
* 测试limiter功能
*/
@Test
@DatabaseSetup(type = DatabaseOperation.CLEAN_INSERT, value = "/indi/mybatis/flying/test/accountTest/testLimiter.xml")
@DatabaseTearDown(type = DatabaseOperation.DELETE_ALL, value = "/indi/mybatis/flying/test/accountTest/testLimiter.xml")
public void testLimiter() {
Account_Condition ac = new Account_Condition();
ac.setLimiter(new PageParam(1, 2));
Collection<Account_> c = accountService.selectAll(ac);
Account_[] accounts = c.toArray(new Account_[c.size()]);
Assert.assertEquals(2, accounts.length);
Assert.assertEquals(1, accounts[0].getId().intValue());
Assert.assertEquals(2, accounts[1].getId().intValue());
Assert.assertEquals(2, ac.getLimiter().getMaxPageNum());
ac.setSorter(new SortParam(new Order(Account_Condition.field_id, Conditionable.Sequence.desc)));
c = accountService.selectAll(ac);
accounts = c.toArray(new Account_[c.size()]);
Assert.assertEquals(2, accounts.length);
Assert.assertEquals(4, accounts[0].getId().intValue());
Assert.assertEquals(3, accounts[1].getId().intValue());
}
Aggregations