|
18 | 18 | package org.apache.rocketmq.remoting.protocol; |
19 | 19 |
|
20 | 20 | import com.alibaba.fastjson.annotation.JSONField; |
| 21 | +import com.alibaba.fastjson2.JSON; |
| 22 | +import org.apache.rocketmq.remoting.protocol.body.BatchAck; |
21 | 23 | import org.junit.Test; |
22 | 24 | import org.objenesis.ObjenesisStd; |
23 | 25 | import org.reflections.Reflections; |
|
26 | 28 | import java.lang.reflect.Field; |
27 | 29 | import java.lang.reflect.Modifier; |
28 | 30 | import java.util.ArrayList; |
| 31 | +import java.util.BitSet; |
29 | 32 | import java.util.HashMap; |
30 | 33 | import java.util.HashSet; |
31 | 34 | import java.util.List; |
|
37 | 40 | import java.util.concurrent.ConcurrentMap; |
38 | 41 | import java.util.concurrent.atomic.AtomicLong; |
39 | 42 |
|
| 43 | +import static org.junit.Assert.assertEquals; |
40 | 44 | import static org.junit.Assert.assertTrue; |
41 | 45 |
|
42 | 46 | public class RemotingSerializableCompatTest { |
@@ -65,6 +69,25 @@ public void testCompatibilityCheck() { |
65 | 69 | } |
66 | 70 | } |
67 | 71 | } |
| 72 | + |
| 73 | + @Test |
| 74 | + public void testCompatibilityCheckWithBitSet() { |
| 75 | + BitSet bitSet = new BitSet(); |
| 76 | + bitSet.set(1); |
| 77 | + bitSet.set(3); |
| 78 | + bitSet.set(5); |
| 79 | + String fastjson1Str = "{\"b\":\"Kg==\",\"c\":\"DEFAULT_CONSUMER\",\"it\":5000,\"pt\":1760694281326,\"q\":1,\"r\":\"0\",\"rq\":2,\"so\":100,\"t\":\"myTopic\"}"; |
| 80 | + BatchAck batchAck = JSON.parseObject(fastjson1Str, BatchAck.class); |
| 81 | + assertEquals(bitSet, batchAck.getBitSet()); |
| 82 | + assertEquals("DEFAULT_CONSUMER", batchAck.getConsumerGroup()); |
| 83 | + assertEquals(5000, batchAck.getInvisibleTime()); |
| 84 | + assertEquals(1760694281326L, batchAck.getPopTime()); |
| 85 | + assertEquals(1, batchAck.getQueueId()); |
| 86 | + assertEquals("0", batchAck.getRetry()); |
| 87 | + assertEquals(2, batchAck.getReviveQueueId()); |
| 88 | + assertEquals(100, batchAck.getStartOffset()); |
| 89 | + assertEquals("myTopic", batchAck.getTopic()); |
| 90 | + } |
68 | 91 |
|
69 | 92 | private void fillDefaultFields(final Object obj, final Class<?> clazz) throws Exception { |
70 | 93 | if (null == clazz || clazz == Object.class) { |
|
0 commit comments