浏览代码

分页属性拷贝测试.

https://github.com/baomidou/mybatis-plus/issues/2258
聂秋秋 5 年之前
父节点
当前提交
7b8cc6ccd5

+ 1 - 1
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/ParameterUtilsTest.java

@@ -72,7 +72,7 @@ class ParameterUtilsTest {
     }
 
     @Test
-    void test() {
+    void testFindPage() {
         Assertions.assertFalse(ParameterUtils.findPage(null).isPresent());
         MapperMethod.ParamMap<Object> param = new MapperMethod.ParamMap<>();
         param.put(Constants.ENTITY, null);

+ 1 - 0
mybatis-plus/build.gradle

@@ -19,5 +19,6 @@ dependencies {
     testCompile "${lib.'spring-context-support'}"
     testCompile "${lib.'spring-jdbc'}"
     testCompile 'javax.annotation:javax.annotation-api:1.3.2'
+    testCompile "${lib.cglib}"
 //    testCompile ('org.apache.phoenix:phoenix-core:5.0.0-HBase-2.0')
 }

+ 55 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/PageTest.java

@@ -0,0 +1,55 @@
+package com.baomidou.mybatisplus.test;
+
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import net.sf.cglib.beans.BeanCopier;
+import org.apache.ibatis.reflection.property.PropertyCopier;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.BeanUtils;
+
+import java.util.Collections;
+
+/**
+ * @author nieqiurong 2020/3/20.
+ */
+class PageTest {
+  
+    @Test
+    void testCopy(){
+        Page page1 = new Page(2, 10, 100, false);
+        page1.setOptimizeCountSql(false);
+        page1.hitCount(true);
+        page1.setOrders(Collections.singletonList(OrderItem.asc("test")));
+        
+        Page page2 = new Page();
+        PropertyCopier.copyBeanProperties(Page.class, page1, page2);
+        Assertions.assertEquals(page1.getCurrent(), page2.getCurrent());
+        Assertions.assertEquals(page1.getTotal(), page2.getTotal());
+        Assertions.assertEquals(page1.getSize(), page2.getSize());
+        Assertions.assertEquals(page1.optimizeCountSql(), page2.optimizeCountSql());
+        Assertions.assertEquals(page1.isSearchCount(), page2.isSearchCount());
+        Assertions.assertEquals(page1.isHitCount(), page2.isHitCount());
+        Assertions.assertEquals(page1.getOrders().size(), page2.getOrders().size());
+
+        Page page3 = new Page();
+        BeanUtils.copyProperties(page1,page3);
+        Assertions.assertEquals(page1.getCurrent(), page3.getCurrent());
+        Assertions.assertEquals(page1.getTotal(), page3.getTotal());
+        Assertions.assertEquals(page1.getSize(), page3.getSize());
+        Assertions.assertEquals(page1.optimizeCountSql(), page3.optimizeCountSql());
+        Assertions.assertEquals(page1.isSearchCount(), page3.isSearchCount());
+        Assertions.assertEquals(page1.isHitCount(), page3.isHitCount());
+        Assertions.assertEquals(page1.getOrders().size(), page3.getOrders().size());
+    
+        Page page4 = new Page();
+        BeanCopier.create(page1.getClass(), page4.getClass(), false).copy(page1, page4, null);
+        //链式的set方法会导致属性BeanCopier的拷贝方法失败  https://github.com/cglib/cglib/issues/108.
+        Assertions.assertTrue(page4.isOptimizeCountSql());
+        Assertions.assertTrue(page4.isSearchCount());
+        Assertions.assertEquals(1, page4.getCurrent());
+        Assertions.assertEquals(1, page4.orders().size());
+        Assertions.assertEquals(10, page4.getSize());
+    }
+    
+}