Преглед на файлове

乐观锁:修改update(et,ew)相关testcase

yuxiaobin преди 7 години
родител
ревизия
54c96ede4a

+ 4 - 3
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2MetaObjAndVersionAndOptLockTest.java

@@ -159,15 +159,16 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
         user.setVersion(1);
         Calendar cal = Calendar.getInstance();
         cal.add(Calendar.DAY_OF_MONTH, -1);
-        user.setTestDate(cal.getTime());
+        Date oldVersionDate = cal.getTime();
+        user.setTestDate(oldVersionDate);
         userMapper.insertAllColumn(user);
 
         H2UserVersionAndLogicDeleteEntity userDB = userMapper.selectById(id);
 
         H2UserVersionAndLogicDeleteEntity updUser = new H2UserVersionAndLogicDeleteEntity();
         updUser.setName("999");
-        userDB.setVersion(null);
-        userMapper.update(updUser, new EntityWrapper<>(userDB));
+        updUser.setTestDate(oldVersionDate);
+        userMapper.update(updUser, null);
 
         System.out.println("before update: testDate=" + userDB.getTestDate());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");

+ 5 - 3
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserDateVersionTest.java

@@ -150,15 +150,17 @@ public class H2UserDateVersionTest extends H2Test {
         user.setVersion(1);
         Calendar cal = Calendar.getInstance();
         cal.add(Calendar.DAY_OF_MONTH, -1);
-        user.setTestDate(cal.getTime());
+
+        Date oldDateVersion = cal.getTime();
+        user.setTestDate(oldDateVersion);
         userMapper.insertAllColumn(user);
 
         H2UserDateVersion userDB = userMapper.selectById(id);
 
         H2UserDateVersion updUser = new H2UserDateVersion();
         updUser.setName("999");
-        userDB.setVersion(null);
-        userMapper.update(updUser, new EntityWrapper<>(userDB));
+        updUser.setTestDate(oldDateVersion);
+        userMapper.update(updUser, new EntityWrapper<H2UserDateVersion>());
 
         System.out.println("before update: testDate=" + userDB.getTestDate());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");

+ 6 - 7
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserExtendsTest.java

@@ -215,6 +215,7 @@ public class H2UserExtendsTest extends H2Test {
     @Test
     public void testUpdateByEntityWrapperNull() {
         Long id = 918L;
+        int oldVersionInt = 99;
         H2UserIntVersionExtendTO user = new H2UserIntVersionExtendTO();
         user.setId(id);
         user.setName("992");
@@ -222,26 +223,24 @@ public class H2UserExtendsTest extends H2Test {
         user.setPrice(BigDecimal.TEN);
         user.setDesc("asdf");
         user.setTestType(1);
-        user.setVersion(1);
+        user.setVersion(oldVersionInt);
         userService.insertAllColumn(user);
 
         H2UserIntVersionExtendTO userDB = userService.selectById(id);
-        Assert.assertEquals(1, userDB.getVersion().intValue());
+        Assert.assertEquals(oldVersionInt, userDB.getVersion().intValue());
         H2UserIntVersionExtendTO updateUser = new H2UserIntVersionExtendTO();
         updateUser.setName("918");
-        updateUser.setVersion(1);
+        updateUser.setVersion(oldVersionInt);
         Assert.assertTrue(userService.update(updateUser, null));
         EntityWrapper<H2UserIntVersionExtendTO> ew = new EntityWrapper<>();
-        int count1 = userService.selectCount(ew);
-        ew.eq("name", "918").eq("version", 1);
+        ew.eq("name", "918").eq("version", oldVersionInt + 1);
         int count2 = userService.selectCount(ew);
         List<H2UserIntVersionExtendTO> userList = userService.selectList(new EntityWrapper<H2UserIntVersionExtendTO>());
         for (H2UserIntVersionExtendTO u : userList) {
             System.out.println(u);
         }
-        System.out.println("count1=" + count1 + ", count2=" + count2);
         Assert.assertTrue(count2 > 0);
-        Assert.assertEquals(count1, count2);
+        Assert.assertEquals(1, count2);
     }
 
     @Test

+ 1 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

@@ -255,6 +255,7 @@ public class H2UserTest extends AbstractH2UserTest {
     public void testDistinctColumn() {
         EntityWrapper<H2User> ew = new EntityWrapper<>();
         ew.setSqlSelect(Column.create().column("distinct test_type"));//setMapUnderscoreToCamelCase(true)
+        ew.isNotNull("test_type");
         List<H2User> list = userService.selectList(ew);
         for (H2User u : list) {
             System.out.println("getTestType=" + u.getTestType());

+ 25 - 14
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/base/AbstractH2UserTest.java

@@ -169,19 +169,21 @@ public abstract class AbstractH2UserTest extends H2Test {
         user.setPrice(BigDecimal.TEN);
         user.setDesc("asdf");
         user.setTestType(1);
-        user.setVersion(1);
+        int version = 99;
+        user.setVersion(version);
         userService.insertAllColumn(user);
 
         H2User userDB = userService.selectById(id);
-        Assert.assertEquals(1, userDB.getVersion().intValue());
+        Assert.assertEquals(version, userDB.getVersion().intValue());
 
         H2User updUser = new H2User();
         updUser.setName("999");
+        updUser.setVersion(version);
 
-        userService.update(updUser, new EntityWrapper<>(userDB));
+        userService.update(updUser, null);
 
         userDB = userService.selectById(id);
-        Assert.assertEquals(2, userDB.getVersion().intValue());
+        Assert.assertEquals(version + 1, userDB.getVersion().intValue());
         Assert.assertEquals("999", userDB.getName());
     }
 
@@ -245,18 +247,23 @@ public abstract class AbstractH2UserTest extends H2Test {
         user.setPrice(BigDecimal.TEN);
         user.setDesc("asdf");
         user.setTestType(1);
-        user.setVersion(1);
+        int version = 1;
+        user.setVersion(version);
         userService.insertAllColumn(user);
 
+        EntityWrapper<H2User> ew = new EntityWrapper<>();
+        ew.eq("version", version);
+        int count1 = userService.selectCount(ew);
+
         H2User userDB = userService.selectById(id);
-        Assert.assertEquals(1, userDB.getVersion().intValue());
+        Assert.assertEquals(version, userDB.getVersion().intValue());
         H2User updateUser = new H2User();
         updateUser.setName("918");
-        updateUser.setVersion(1);
+        updateUser.setVersion(version);
         Assert.assertTrue(userService.update(updateUser, null));
-        EntityWrapper<H2User> ew = new EntityWrapper<>();
-        int count1 = userService.selectCount(ew);
-        ew.eq("name", "918").eq("version", 1);
+
+        ew = new EntityWrapper<>();
+        ew.eq("name", "918").eq("version", version + 1);
         int count2 = userService.selectCount(ew);
         List<H2User> userList = userService.selectList(new EntityWrapper<H2User>());
         for (H2User u : userList) {
@@ -305,12 +312,14 @@ public abstract class AbstractH2UserTest extends H2Test {
 
     protected void updateAllColumnInLoop() {
         List<H2User> list = userService.selectList(new EntityWrapper<H2User>());
-        Map<Long, Integer> versionBefore = new HashMap<>();
+        Map<Long, Integer> versionExpect = new HashMap<>();
         Map<Long, String> nameExpect = new HashMap<>();
         for (H2User h2User : list) {
             Long id = h2User.getId();
             Integer versionVal = h2User.getVersion();
-            versionBefore.put(id, versionVal);
+            if (versionVal != null) {
+                versionExpect.put(id, versionVal + 1);
+            }
             String randomName = h2User.getName() + "_" + new Random().nextInt(10);
             nameExpect.put(id, randomName);
             h2User.setName(randomName);
@@ -319,8 +328,10 @@ public abstract class AbstractH2UserTest extends H2Test {
 
         list = userService.selectList(new EntityWrapper<H2User>());
         for (H2User u : list) {
-            Assert.assertEquals(u.getName(), nameExpect.get(u.getId()));
-            Assert.assertEquals(versionBefore.get(u.getId()) + 1, u.getVersion().intValue());
+            Long id = u.getId();
+            Assert.assertEquals(u.getName(), nameExpect.get(id));
+            if (versionExpect.containsKey(id))
+                Assert.assertEquals(versionExpect.get(id).intValue(), u.getVersion().intValue());
         }
     }