This is an automated email from the ASF dual-hosted git repository.
zhangyonglun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new b3e9529 AbstractResumeBreakPointManagerTest.setUp() set
PositionManagerMap as a TreeMap to make sure key is in order. (#6750)
b3e9529 is described below
commit b3e95295ecf7116f2376e4242e651daf9155ef03
Author: 邱鹿 Lucas <[email protected]>
AuthorDate: Mon Aug 10 16:33:04 2020 +0800
AbstractResumeBreakPointManagerTest.setUp() set PositionManagerMap as a
TreeMap to make sure key is in order. (#6750)
Co-authored-by: qiulu3 <Lucas209910>
---
.../AbstractResumeBreakPointManagerTest.java | 32 ++++++++++++++++++----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git
a/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumeBreakPointManagerTest.java
b/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumeBreakPointManagerTest.java
index 89eeb76..766e99d 100644
---
a/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumeBreakPointManagerTest.java
+++
b/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumeBreakPointManagerTest.java
@@ -19,17 +19,18 @@ package
org.apache.shardingsphere.scaling.core.job.position.resume;
import org.apache.shardingsphere.scaling.core.job.position.BasePositionManager;
import org.apache.shardingsphere.scaling.core.job.position.FinishedPosition;
+import org.apache.shardingsphere.scaling.core.job.position.IncrementalPosition;
+import org.apache.shardingsphere.scaling.core.job.position.InventoryPosition;
import
org.apache.shardingsphere.scaling.core.job.position.InventoryPositionManager;
import org.apache.shardingsphere.scaling.core.job.position.PlaceholderPosition;
+import org.apache.shardingsphere.scaling.core.job.position.PositionManager;
import org.apache.shardingsphere.scaling.core.job.position.PrimaryKeyPosition;
-import org.apache.shardingsphere.scaling.core.spi.ScalingEntryLoader;
-import org.apache.shardingsphere.scaling.mysql.MySQLScalingEntry;
import org.apache.shardingsphere.scaling.mysql.binlog.BinlogPosition;
import org.apache.shardingsphere.scaling.utils.ReflectionUtil;
import org.junit.Before;
import org.junit.Test;
-import java.util.Map;
+import java.util.TreeMap;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -40,7 +41,7 @@ public final class AbstractResumeBreakPointManagerTest {
private final String incrementalPosition =
"{\"ds0\":{\"filename\":\"mysql-bin.000001\",\"position\":4},\"ds1\":{\"filename\":\"mysql-bin.000002\",\"position\":4}}";
- private final String inventoryPosition =
"{\"unfinished\":{\"ds0.t_order_2\":[],\"ds1.t_order_1#0\":[0,200],\"ds0.t_order_1#0\":[0,100]},\"finished\":[\"ds0.t_order_1#1\"]}";
+ private final String inventoryPosition =
"{\"unfinished\":{\"ds0.t_order_1#0\":[0,100],\"ds0.t_order_2\":[],\"ds1.t_order_1#0\":[0,200]},\"finished\":[\"ds0.t_order_1#1\"]}";
@Before
public void setUp() throws NoSuchFieldException, IllegalAccessException {
@@ -48,7 +49,10 @@ public final class AbstractResumeBreakPointManagerTest {
};
resumeBreakPointManager.setDatabaseType("MySQL");
resumeBreakPointManager.setTaskPath("/scalingTest/item-0");
- ReflectionUtil.getFieldValueFromClass(new ScalingEntryLoader(),
"SCALING_ENTRY_MAP", Map.class).put("MySQL", new MySQLScalingEntry());
+
ReflectionUtil.getFieldFromClass(AbstractResumeBreakPointManager.class,
"inventoryPositionManagerMap", true)
+ .set(resumeBreakPointManager, new TreeMap<String,
PositionManager<InventoryPosition>>());
+
ReflectionUtil.getFieldFromClass(AbstractResumeBreakPointManager.class,
"incrementalPositionManagerMap", true)
+ .set(resumeBreakPointManager, new TreeMap<String,
PositionManager<IncrementalPosition>>());
}
@Test
@@ -71,6 +75,24 @@ public final class AbstractResumeBreakPointManagerTest {
}
@Test
+ public void assertPrimaryKeyPositionJson() {
+
resumeBreakPointManager.getInventoryPositionManagerMap().put("ds0.t_order_1#0",
new InventoryPositionManager<>(new PrimaryKeyPosition(0L, 100L)));
+ assertThat(resumeBreakPointManager.getInventoryPositionData(),
is("{\"unfinished\":{\"ds0.t_order_1#0\":[0,100]},\"finished\":[]}"));
+ }
+
+ @Test
+ public void assertPlaceholderPositionJson() {
+
resumeBreakPointManager.getInventoryPositionManagerMap().put("ds0.t_order_1#0",
new InventoryPositionManager<>(new PlaceholderPosition()));
+ assertThat(resumeBreakPointManager.getInventoryPositionData(),
is("{\"unfinished\":{\"ds0.t_order_1#0\":[]},\"finished\":[]}"));
+ }
+
+ @Test
+ public void assertFinishedPositionJson() {
+
resumeBreakPointManager.getInventoryPositionManagerMap().put("ds0.t_order_1#0",
new InventoryPositionManager<>(new FinishedPosition()));
+ assertThat(resumeBreakPointManager.getInventoryPositionData(),
is("{\"unfinished\":{},\"finished\":[\"ds0.t_order_1#0\"]}"));
+ }
+
+ @Test
public void assertGetInventoryPositionData() {
resumeBreakPointManager.getInventoryPositionManagerMap().put("ds0.t_order_1#0",
new InventoryPositionManager<>(new PrimaryKeyPosition(0L, 100L)));
resumeBreakPointManager.getInventoryPositionManagerMap().put("ds0.t_order_1#1",
new InventoryPositionManager<>(new FinishedPosition()));