Skip to content

Commit 0b563a6

Browse files
committed
improve unit test TransactionStoreTest
1 parent 338a02e commit 0b563a6

File tree

2 files changed

+42
-10
lines changed

2 files changed

+42
-10
lines changed

src/main/java/org/tron/core/db/TronStoreWithRevoking.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ protected TronStoreWithRevoking(String dbName, RevokingDatabase revokingDatabase
2323

2424
@Override
2525
public void put(byte[] key, T item) {
26+
if (Objects.isNull(key) || Objects.isNull(item)) {
27+
return;
28+
}
2629
//logger.info("Address is {}, " + item.getClass().getSimpleName() + " is {}", key, item);
2730
byte[] value = dbSource.getData(key);
2831
if (ArrayUtils.isNotEmpty(value)) {

src/test/java/org/tron/core/db/TransactionStoreTest.java

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ public class TransactionStoreTest {
2828
private static String dbPath = "output_TransactionStore_test";
2929
private static TransactionStore transactionStore;
3030
private static AnnotationConfigApplicationContext context;
31-
private static final byte[] data = TransactionStoreTest.randomBytes(21);
31+
private static final byte[] key1 = TransactionStoreTest.randomBytes(21);
3232
private static Manager dbManager;
33+
private static final byte[] key2 = TransactionStoreTest.randomBytes(21);
3334

3435

3536
private static final String URL = "https://tron.network";
@@ -113,11 +114,11 @@ public void CreateAccountTransactionStoreTest() {
113114
OWNER_ADDRESS);
114115
TransactionCapsule ret = new TransactionCapsule(accountCreateContract,
115116
dbManager.getAccountStore());
116-
transactionStore.put(data, ret);
117+
transactionStore.put(key1, ret);
117118
Assert.assertEquals("Store CreateAccountTransaction is error",
118-
transactionStore.get(data).getInstance(),
119+
transactionStore.get(key1).getInstance(),
119120
ret.getInstance());
120-
Assert.assertTrue(transactionStore.has(data));
121+
Assert.assertTrue(transactionStore.has(key1));
121122
}
122123

123124
/**
@@ -127,9 +128,9 @@ public void CreateAccountTransactionStoreTest() {
127128
public void CreateWitnessTransactionStoreTest() {
128129
WitnessCreateContract witnessContract = getWitnessContract(OWNER_ADDRESS, URL);
129130
TransactionCapsule transactionCapsule = new TransactionCapsule(witnessContract);
130-
transactionStore.put(data, transactionCapsule);
131+
transactionStore.put(key1, transactionCapsule);
131132
Assert.assertEquals("Store CreateWitnessTransaction is error",
132-
transactionStore.get(data).getInstance(),
133+
transactionStore.get(key1).getInstance(),
133134
transactionCapsule.getInstance());
134135
}
135136

@@ -149,9 +150,9 @@ public void TransferTransactionStorenTest() {
149150
TransferContract transferContract = getContract(AMOUNT, OWNER_ADDRESS, TO_ADDRESS);
150151
TransactionCapsule transactionCapsule = new TransactionCapsule(transferContract,
151152
dbManager.getAccountStore());
152-
transactionStore.put(data, transactionCapsule);
153+
transactionStore.put(key1, transactionCapsule);
153154
Assert.assertEquals("Store TransferTransaction is error",
154-
transactionStore.get(data).getInstance(),
155+
transactionStore.get(key1).getInstance(),
155156
transactionCapsule.getInstance());
156157
}
157158

@@ -175,12 +176,40 @@ public void voteWitnessTransactionTest() {
175176
.put(ownerAccountFirstCapsule.getAddress().toByteArray(), ownerAccountFirstCapsule);
176177
VoteWitnessContract actuator = getVoteWitnessContract(OWNER_ADDRESS, WITNESS_ADDRESS, 1L);
177178
TransactionCapsule transactionCapsule = new TransactionCapsule(actuator);
178-
transactionStore.put(data, transactionCapsule);
179+
transactionStore.put(key1, transactionCapsule);
179180
Assert.assertEquals("Store VoteWitnessTransaction is error",
180-
transactionStore.get(data).getInstance(),
181+
transactionStore.get(key1).getInstance(),
181182
transactionCapsule.getInstance());
182183
}
183184

185+
/**
186+
* put value is null and get it.
187+
*/
188+
@Test
189+
public void TransactionValueNullTest() {
190+
TransactionCapsule transactionCapsule = null;
191+
transactionStore.put(key2, transactionCapsule);
192+
Assert.assertNull("put value is null", transactionStore.get(key2));
193+
194+
}
195+
196+
/**
197+
* put key is null and get it.
198+
*/
199+
@Test
200+
public void TransactionKeyNullTest() {
201+
AccountCreateContract accountCreateContract = getContract(ACCOUNT_NAME,
202+
OWNER_ADDRESS);
203+
TransactionCapsule ret = new TransactionCapsule(accountCreateContract,
204+
dbManager.getAccountStore());
205+
byte[] key = null;
206+
transactionStore.put(key, ret);
207+
try {
208+
transactionStore.get(key);
209+
} catch (RuntimeException e) {
210+
Assert.assertEquals("The key argument cannot be null", e.getMessage());
211+
}
212+
}
184213
@AfterClass
185214
public static void destroy() {
186215
Args.clearParam();

0 commit comments

Comments
 (0)