Added tests for custom operation
This commit is contained in:
parent
16d3ff6721
commit
be9a16a48b
2 changed files with 63 additions and 0 deletions
|
@ -14,6 +14,7 @@ import java.io.IOException;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
|
@ -24,6 +25,7 @@ import cy.agorise.graphenej.interfaces.WitnessResponseListener;
|
||||||
import cy.agorise.graphenej.models.BaseResponse;
|
import cy.agorise.graphenej.models.BaseResponse;
|
||||||
import cy.agorise.graphenej.models.WitnessResponse;
|
import cy.agorise.graphenej.models.WitnessResponse;
|
||||||
import cy.agorise.graphenej.objects.Memo;
|
import cy.agorise.graphenej.objects.Memo;
|
||||||
|
import cy.agorise.graphenej.operations.CustomOperation;
|
||||||
import cy.agorise.graphenej.operations.LimitOrderCancelOperation;
|
import cy.agorise.graphenej.operations.LimitOrderCancelOperation;
|
||||||
import cy.agorise.graphenej.operations.LimitOrderCreateOperation;
|
import cy.agorise.graphenej.operations.LimitOrderCreateOperation;
|
||||||
import cy.agorise.graphenej.operations.TransferOperation;
|
import cy.agorise.graphenej.operations.TransferOperation;
|
||||||
|
@ -53,6 +55,13 @@ public class TransactionTest {
|
||||||
private AssetAmount minToReceive = new AssetAmount(UnsignedLong.valueOf(520), BIT_USD);
|
private AssetAmount minToReceive = new AssetAmount(UnsignedLong.valueOf(520), BIT_USD);
|
||||||
private long expiration;
|
private long expiration;
|
||||||
|
|
||||||
|
// Custom operation transaction
|
||||||
|
private final AssetAmount fee = new AssetAmount(UnsignedLong.valueOf(100000), CORE_ASSET);
|
||||||
|
private final UserAccount payer = bilthon_7;
|
||||||
|
private final Integer operationId = 61166;
|
||||||
|
private final List<UserAccount> requiredAuths = Collections.singletonList(payer);
|
||||||
|
private final String data = "some data";
|
||||||
|
|
||||||
private final long FEE_AMOUNT = 21851;
|
private final long FEE_AMOUNT = 21851;
|
||||||
|
|
||||||
// Lock object
|
// Lock object
|
||||||
|
@ -322,4 +331,19 @@ public class TransactionTest {
|
||||||
}
|
}
|
||||||
}, lockObject);
|
}, lockObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCustomOperationTransaction(){
|
||||||
|
ECKey sourcePrivateKey = new BrainKey(BILTHON_7_BRAIN_KEY, 0).getPrivateKey();
|
||||||
|
|
||||||
|
// Creating custom operation
|
||||||
|
CustomOperation customOperation = new CustomOperation(fee, payer, operationId, requiredAuths, data);
|
||||||
|
|
||||||
|
// Adding operation to the operation list
|
||||||
|
ArrayList<BaseOperation> operationList = new ArrayList<>();
|
||||||
|
operationList.add(customOperation);
|
||||||
|
|
||||||
|
// Broadcasting transaction
|
||||||
|
broadcastTransaction(sourcePrivateKey, operationList, listener, null);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
package cy.agorise.graphenej.operations;
|
||||||
|
|
||||||
|
import com.google.common.primitives.UnsignedLong;
|
||||||
|
import cy.agorise.graphenej.Asset;
|
||||||
|
import cy.agorise.graphenej.AssetAmount;
|
||||||
|
import cy.agorise.graphenej.UserAccount;
|
||||||
|
import cy.agorise.graphenej.Util;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertArrayEquals;
|
||||||
|
|
||||||
|
public class CustomOperationTest {
|
||||||
|
private final Asset CORE_ASSET = new Asset("1.3.0");
|
||||||
|
private final AssetAmount fee = new AssetAmount(UnsignedLong.valueOf(100000L), CORE_ASSET);
|
||||||
|
private final UserAccount payer = new UserAccount("1.2.20");
|
||||||
|
private final Integer operationId = 61166;
|
||||||
|
private final List<UserAccount> requiredAuths = Collections.singletonList(payer);
|
||||||
|
private final String shortData = "some data";
|
||||||
|
private final String longData = "very long data, very long data, very long data, very long data, very long data, very long data, very long data, very long data, very long data, very long data, very long data, very long data, very long data, very long data...";
|
||||||
|
|
||||||
|
private static final byte[] EXPECTED_SERIALIZED_BYTES_1 = Util.hexToBytes("a08601000000000000140114eeee09736f6d652064617461");
|
||||||
|
private static final byte[] EXPECTED_SERIALIZED_BYTES_2 = Util.hexToBytes("a08601000000000000140114eeeee50176657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c202076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c202076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c202076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612c202076657279206c6f6e6720646174612c2076657279206c6f6e6720646174612e2e2e");
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testToBytes() throws Exception {
|
||||||
|
CustomOperation customOperation1 = new CustomOperation(fee, payer, operationId, requiredAuths, shortData);
|
||||||
|
byte[] serialized1 = customOperation1.toBytes();
|
||||||
|
assertArrayEquals(EXPECTED_SERIALIZED_BYTES_1, serialized1);
|
||||||
|
|
||||||
|
// test with some long data string to check if data length is serialized correctly
|
||||||
|
CustomOperation customOperation2 = new CustomOperation(fee, payer, operationId, requiredAuths, longData);
|
||||||
|
byte[] serialized2 = customOperation2.toBytes();
|
||||||
|
assertArrayEquals(EXPECTED_SERIALIZED_BYTES_2, serialized2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue