This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 3711cab0a21 Refactor MppdbDecodingPluginTest (#30298)
3711cab0a21 is described below
commit 3711cab0a21f15db04fee0f4dbd580321a6e39a0
Author: Raigor <[email protected]>
AuthorDate: Mon Feb 26 17:53:20 2024 +0800
Refactor MppdbDecodingPluginTest (#30298)
---
.../ingest/wal/decode/MppdbDecodingPluginTest.java | 43 +++++++++-------------
1 file changed, 17 insertions(+), 26 deletions(-)
diff --git
a/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPluginTest.java
b/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPluginTest.java
index c8471e329b8..221add916f7 100644
---
a/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPluginTest.java
+++
b/kernel/data-pipeline/dialect/opengauss/src/test/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPluginTest.java
@@ -17,9 +17,6 @@
package org.apache.shardingsphere.data.pipeline.opengauss.ingest.wal.decode;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.SneakyThrows;
import org.apache.shardingsphere.data.pipeline.core.exception.IngestException;
import
org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.decode.DecodingException;
import
org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.event.AbstractWALEvent;
@@ -29,6 +26,7 @@ import
org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.event.Delet
import
org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.event.PlaceholderEvent;
import
org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.event.UpdateRowEvent;
import
org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.event.WriteRowEvent;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
import org.junit.jupiter.api.Test;
import org.opengauss.jdbc.TimestampUtils;
import org.opengauss.replication.LogSequenceNumber;
@@ -53,8 +51,6 @@ import static org.mockito.Mockito.when;
class MppdbDecodingPluginTest {
- private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
-
private final LogSequenceNumber pgSequenceNumber =
LogSequenceNumber.valueOf("0/14EFDB8");
private final OpenGaussLogSequenceNumber logSequenceNumber = new
OpenGaussLogSequenceNumber(pgSequenceNumber);
@@ -68,18 +64,13 @@ class MppdbDecodingPluginTest {
tableData.setColumnsType(insertTypes);
tableData.setColumnsName(IntStream.range(0,
insertTypes.length).mapToObj(idx -> "data" + idx).toArray(String[]::new));
tableData.setColumnsVal(IntStream.range(0,
insertTypes.length).mapToObj(idx -> "'1 2 3'").toArray(String[]::new));
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
assertThat(actual.getTableName(), is("test"));
IntStream.range(0, insertTypes.length).forEach(each ->
assertThat(actual.getAfterRow().get(each), is("1 2 3")));
}
- @SneakyThrows
- private String toJSON(final MppTableData tableData) {
- return OBJECT_MAPPER.writeValueAsString(tableData);
- }
-
@Test
void assertDecodeUpdateRowEvent() {
MppTableData tableData = new MppTableData();
@@ -88,7 +79,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"character varying"});
tableData.setColumnsVal(new String[]{"'1 2 3'"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
UpdateRowEvent actual = (UpdateRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
assertThat(actual.getTableName(), is("test"));
@@ -105,7 +96,7 @@ class MppdbDecodingPluginTest {
tableData.setOldKeysType(deleteTypes);
tableData.setOldKeysName(IntStream.range(0,
deleteTypes.length).mapToObj(idx -> "data" + idx).toArray(String[]::new));
tableData.setOldKeysVal(deleteValues);
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
DeleteRowEvent actual = (DeleteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
assertThat(actual.getTableName(), is("test"));
@@ -120,7 +111,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"money"});
tableData.setColumnsVal(new String[]{"'$1.08'"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
assertThat(actual.getTableName(), is("test"));
@@ -136,7 +127,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"boolean"});
tableData.setColumnsVal(new String[]{Boolean.TRUE.toString()});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
assertThat(actual.getTableName(), is("test"));
@@ -157,7 +148,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(IntStream.range(0,
insertTypes.length).mapToObj(idx -> "data" + idx).toArray(String[]::new));
tableData.setColumnsType(insertTypes);
tableData.setColumnsVal(insertValues);
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
TimestampUtils timestampUtils = mock(TimestampUtils.class);
when(timestampUtils.toTime(null,
"21:21:21")).thenReturn(Time.valueOf("21:21:21"));
when(timestampUtils.toTime(null, "21:21:21
pst")).thenReturn(Time.valueOf("13:21:21"));
@@ -178,7 +169,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"bytea"});
tableData.setColumnsVal(new String[]{"'\\xff00ab'"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
assertThat(actual.getTableName(), is("test"));
@@ -195,7 +186,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"raw"});
tableData.setColumnsVal(new String[]{"'7D'"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
assertThat(actual.getLogSequenceNumber(), is(logSequenceNumber));
assertThat(actual.getTableName(), is("test"));
@@ -218,7 +209,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"character varying"});
tableData.setColumnsVal(new String[]{"1 2 3"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
assertThrows(IngestException.class, () -> new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber));
}
@@ -232,19 +223,19 @@ class MppdbDecodingPluginTest {
tableData.setColumnsVal(new String[]{"'1 2 3'"});
TimestampUtils timestampUtils = mock(TimestampUtils.class);
when(timestampUtils.toTime(null, "1 2 3")).thenThrow(new
SQLException(""));
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
assertThrows(DecodingException.class, () -> new
MppdbDecodingPlugin(new OpenGaussTimestampUtils(timestampUtils),
true).decode(data, logSequenceNumber));
}
@Test
- void assertDecodeWithXid() throws JsonProcessingException {
+ void assertDecodeWithXid() {
MppTableData tableData = new MppTableData();
tableData.setTableName("public.test");
tableData.setOpType("INSERT");
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"raw"});
tableData.setColumnsVal(new String[]{"'7D'"});
- List<String> dataList = Arrays.asList("BEGIN 1",
OBJECT_MAPPER.writeValueAsString(tableData),
OBJECT_MAPPER.writeValueAsString(tableData),
+ List<String> dataList = Arrays.asList("BEGIN 1",
JsonUtils.toJsonString(tableData), JsonUtils.toJsonString(tableData),
"COMMIT 1 (at 2022-10-27 04:19:39.476261+00) CSN 3468");
MppdbDecodingPlugin mppdbDecodingPlugin = new
MppdbDecodingPlugin(null, true);
List<AbstractWALEvent> expectedEvent = new LinkedList<>();
@@ -269,7 +260,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"tsrange"});
tableData.setColumnsVal(new String[]{"'[\"2020-01-01
00:00:00\",\"2021-01-01 00:00:00\")'"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
Object byteaObj = actual.getAfterRow().get(0);
assertThat(byteaObj, instanceOf(PGobject.class));
@@ -284,7 +275,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"daterange"});
tableData.setColumnsVal(new String[]{"'[2020-01-02,2021-01-02)'"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
Object byteaObj = actual.getAfterRow().get(0);
assertThat(byteaObj, instanceOf(PGobject.class));
@@ -299,7 +290,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"tsquery"});
tableData.setColumnsVal(new String[]{"'''fff'' | ''faa'''"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
Object byteaObj = actual.getAfterRow().get(0);
assertThat(byteaObj.toString(), is("'fff' | 'faa'"));
@@ -313,7 +304,7 @@ class MppdbDecodingPluginTest {
tableData.setColumnsName(new String[]{"data"});
tableData.setColumnsType(new String[]{"tinyint"});
tableData.setColumnsVal(new String[]{"255"});
- ByteBuffer data = ByteBuffer.wrap(toJSON(tableData).getBytes());
+ ByteBuffer data =
ByteBuffer.wrap(JsonUtils.toJsonString(tableData).getBytes());
WriteRowEvent actual = (WriteRowEvent) new
MppdbDecodingPlugin(null).decode(data, logSequenceNumber);
Object byteaObj = actual.getAfterRow().get(0);
assertThat(byteaObj, is(255));