Skip to content
This repository was archived by the owner on Aug 30, 2022. It is now read-only.

Commit c4f1d55

Browse files
author
Jon La Marr
committed
More tests
1 parent df0b315 commit c4f1d55

1 file changed

Lines changed: 79 additions & 6 deletions

File tree

eosiojava/src/test/java/one/block/eosiojava/session/TransactionProcessorTest.java

Lines changed: 79 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
import one.block.eosiojava.error.rpcProvider.GetInfoRpcError;
2222
import one.block.eosiojava.error.rpcProvider.GetRequiredKeysRpcError;
2323
import one.block.eosiojava.error.rpcProvider.PushTransactionRpcError;
24+
import one.block.eosiojava.error.serializationProvider.DeserializeDataError;
2425
import one.block.eosiojava.error.serializationProvider.DeserializeTransactionError;
26+
import one.block.eosiojava.error.serializationProvider.SerializeDataError;
2527
import one.block.eosiojava.error.serializationProvider.SerializeError;
2628
import one.block.eosiojava.error.serializationProvider.SerializeTransactionError;
2729
import one.block.eosiojava.error.session.TransactionBroadCastError;
@@ -204,6 +206,8 @@ public void getTransaction() {
204206
assertEquals(expectedRefBlockNum, transaction.getRefBlockNum());
205207
assertEquals(refBlockPrefix, transaction.getRefBlockPrefix());
206208
assertNotNull(transaction.getRefBlockPrefix());
209+
assertNotNull(transaction.getContextFreeData());
210+
assertTrue(transaction.getContextFreeData().isEmpty());
207211
}
208212

209213
@Test
@@ -233,7 +237,8 @@ public void getOriginalTransaction() {
233237
assertEquals(expectedRefBlockNum, transaction.getRefBlockNum());
234238
assertEquals(refBlockPrefix, transaction.getRefBlockPrefix());
235239
assertNotNull(transaction.getRefBlockPrefix());
236-
240+
assertNotNull(transaction.getContextFreeData());
241+
assertTrue(transaction.getContextFreeData().isEmpty());
237242
} catch (TransactionSignError transactionSignError) {
238243
transactionSignError.printStackTrace();
239244
fail("Exception should not be thrown here for calling sign");
@@ -277,6 +282,22 @@ public void getSerializedTransaction() {
277282
}
278283
}
279284

285+
@Test
286+
public void getSerializedContextFreeData() {
287+
this.mockDefaultSuccessData();
288+
// Prepare has to be called before sign
289+
TransactionProcessor processor = createAndPrepareTransaction(this.defaultActions(), this.defaultContextFreeData());
290+
assertNotNull(processor);
291+
292+
try {
293+
assertTrue(processor.sign());
294+
assertEquals(MOCKED_CONTEXT_FREE_DATA_HEX, processor.getSerializedContextFreeData());
295+
} catch (TransactionSignError transactionSignError) {
296+
transactionSignError.printStackTrace();
297+
fail("Exception should not be thrown here for calling sign");
298+
}
299+
}
300+
280301
@Test
281302
public void getTransactionConfig() {
282303
this.mockDefaultSuccessData();
@@ -349,7 +370,7 @@ public void isAllowTransactionToBeModified() {
349370
Utils.getGson(DateFormatter.BACKEND_DATE_PATTERN).fromJson(MOCKED_PUSHTRANSACTION_RESPONE_JSON, PushTransactionResponse.class));
350371

351372
this.mockAbiProvider(EOSIOTOKENABIJSON);
352-
this.mockSerializationProvider(MOCKED_ACTION_HEX, MOCKED_TRANSACTION_HEX, mockedDeserilizedTransaction);
373+
this.mockSerializationProvider(MOCKED_ACTION_HEX, MOCKED_TRANSACTION_HEX, mockedDeserilizedTransaction, MOCKED_CONTEXT_FREE_DATA_HEX);
353374
this.mockSignatureProvider(Arrays.asList("Key1", "Key2"),
354375
Utils.getGson(DateFormatter.BACKEND_DATE_PATTERN)
355376
.fromJson(mockedEosioTransactionSignatureResponseModifiedTransactionJSON, EosioTransactionSignatureResponse.class));
@@ -516,6 +537,28 @@ public void testContextFreeActionPrepare() {
516537
}
517538
}
518539

540+
@Test
541+
public void testContextFreeDataPrepare() {
542+
// Prepare and sign
543+
this.mockDefaultSuccessData();
544+
545+
// Context free actions
546+
TransactionProcessor processor = session.getTransactionProcessor();
547+
try {
548+
processor.prepare(this.defaultActions(), this.defaultActions(), this.defaultContextFreeData());
549+
} catch (TransactionPrepareError transactionPrepareError) {
550+
transactionPrepareError.printStackTrace();
551+
fail("Exception should not be thrown here for calling prepare.");
552+
}
553+
554+
try {
555+
assertNotEquals("", processor.serialize());
556+
} catch (TransactionSerializeError transactionSerializeError) {
557+
transactionSerializeError.printStackTrace();
558+
fail("Exception should not be thrown here for calling serialize.");
559+
}
560+
}
561+
519562
private void mockDefaultSuccessData() {
520563
this.mockRPC(
521564
Utils.getGson(DateFormatter.BACKEND_DATE_PATTERN).fromJson(mockedGetInfoResponse, GetInfoResponse.class),
@@ -524,7 +567,7 @@ private void mockDefaultSuccessData() {
524567
Utils.getGson(DateFormatter.BACKEND_DATE_PATTERN).fromJson(MOCKED_PUSHTRANSACTION_RESPONE_JSON, PushTransactionResponse.class));
525568

526569
this.mockAbiProvider(EOSIOTOKENABIJSON);
527-
this.mockSerializationProvider(MOCKED_ACTION_HEX, MOCKED_TRANSACTION_HEX, mockedDeserilizedTransaction);
570+
this.mockSerializationProvider(MOCKED_ACTION_HEX, MOCKED_TRANSACTION_HEX, mockedDeserilizedTransaction, MOCKED_CONTEXT_FREE_DATA_HEX);
528571
this.mockSignatureProvider(Arrays.asList("Key1", "Key2"),
529572
Utils.getGson(DateFormatter.BACKEND_DATE_PATTERN).fromJson(mockedEosioTransactionSignatureResponseJSON, EosioTransactionSignatureResponse.class));
530573
}
@@ -545,10 +588,23 @@ private List<Action> defaultActions() {
545588
return actions;
546589
}
547590

548-
private TransactionProcessor createAndPrepareTransaction(List<Action> actions) {
591+
private List<String> defaultContextFreeData() {
592+
String contextFreeData1 = "test";
593+
String contextFreeData2 = "{\"some\": \"jsonData\"}";
594+
String contextFreeData3 = "!@#$%^&*()_+";
595+
596+
ArrayList<String> contextFreeData = new ArrayList<String>();
597+
contextFreeData.add(contextFreeData1);
598+
contextFreeData.add(contextFreeData2);
599+
contextFreeData.add(contextFreeData3);
600+
601+
return contextFreeData;
602+
}
603+
604+
private TransactionProcessor createAndPrepareTransaction(List<Action> actions, List<String> contextFreeData) {
549605
try {
550606
TransactionProcessor processor = session.getTransactionProcessor();
551-
processor.prepare(actions);
607+
processor.prepare(actions, new ArrayList<Action>(), contextFreeData);
552608
return processor;
553609
} catch (TransactionPrepareError transactionPrepareError) {
554610
transactionPrepareError.printStackTrace();
@@ -557,6 +613,10 @@ private TransactionProcessor createAndPrepareTransaction(List<Action> actions) {
557613
}
558614
}
559615

616+
private TransactionProcessor createAndPrepareTransaction(List<Action> actions) {
617+
return this.createAndPrepareTransaction(actions, new ArrayList<String>());
618+
}
619+
560620
private void mockRPC(
561621
@Nullable GetInfoResponse getInfoResponse,
562622
@Nullable GetBlockResponse getBlockResponse,
@@ -612,7 +672,8 @@ private void mockAbiProvider(String abiJSON) {
612672
private void mockSerializationProvider(
613673
@Nullable final String mockedActionHex,
614674
@Nullable String mockedTransactionHex,
615-
@Nullable String mockedDeserializedTransaction) {
675+
@Nullable String mockedDeserializedTransaction,
676+
@Nullable String mockedContextFreeDataHex) {
616677

617678
if (mockedActionHex != null) {
618679
try {
@@ -647,6 +708,15 @@ public Object answer(InvocationOnMock invocationOnMock) {
647708
fail("Exception should not be thrown here for mocking deserializeTransaction");
648709
}
649710
}
711+
712+
if (mockedContextFreeDataHex != null) {
713+
try {
714+
when(this.mockedSerializationProvider.serializeData(any(ArrayList.class))).thenReturn(mockedContextFreeDataHex);
715+
} catch (SerializeDataError deserializeTransactionError) {
716+
deserializeTransactionError.printStackTrace();
717+
fail("Exception should not be thrown here for mocking serializeData");
718+
}
719+
}
650720
}
651721

652722
private void mockSignatureProvider(List<String> mockedAvaialbleKeys, EosioTransactionSignatureResponse mockedResponse) {
@@ -679,6 +749,9 @@ private void mockSignatureProvider(List<String> mockedAvaialbleKeys, EosioTransa
679749
private static final String MOCKED_SIGNATURE = "SIG_R1_KsHAyy6EvQq2E6c7oxzxCtus5Jd4wP8KZkSxuhZUfxprU56okEWFjopjwy7wGH4fAjJKgTcceG4iUhZGRsWfYiDaTK5X5y";
680750
private static final String MOCKED_CHAIN_ID = "Mocked chain id";
681751
private static final String MOCKED_TRANSACTION_HEX_MODIFIED = "1ec3a35c1a706e886c51000000000100a6823403ea3055000000572d3ccdcd01000000000000c03400000000a8ed32322a000000000000c034000000000000a682a08601000000000004454f530000000009536f6d657468696e6700";
752+
private static final String MOCKED_CONTEXT_FREE_DATA_HEX = "C21BFB5AD4B64BFD04838B3B14F0CE0C7B92136CAC69BFED41BEF92F95A9BB20";
753+
754+
682755

683756
// Expectation
684757
// headBlockTime + default 5 minutes

0 commit comments

Comments
 (0)