forked from Qortal/qortal
Updated naming unit tests
- Use the "{\"age\":30}" data to make the tests more similar to some real world data. - Added tests to ensure that registering and orphaning works as expected.
This commit is contained in:
parent
e90c3a78d1
commit
ce60ab8e00
@ -13,6 +13,7 @@ import org.qortal.data.transaction.UpdateNameTransactionData;
|
|||||||
import org.qortal.repository.DataException;
|
import org.qortal.repository.DataException;
|
||||||
import org.qortal.repository.Repository;
|
import org.qortal.repository.Repository;
|
||||||
import org.qortal.repository.RepositoryManager;
|
import org.qortal.repository.RepositoryManager;
|
||||||
|
import org.qortal.test.common.BlockUtils;
|
||||||
import org.qortal.test.common.Common;
|
import org.qortal.test.common.Common;
|
||||||
import org.qortal.test.common.TransactionUtils;
|
import org.qortal.test.common.TransactionUtils;
|
||||||
import org.qortal.test.common.transaction.TestTransaction;
|
import org.qortal.test.common.transaction.TestTransaction;
|
||||||
@ -32,7 +33,7 @@ public class MiscTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String name = "initial-name";
|
String name = "initial-name";
|
||||||
String data = "initial-data";
|
String data = "{\"age\":30}";
|
||||||
|
|
||||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
@ -51,7 +52,7 @@ public class MiscTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String name = "test-name";
|
String name = "test-name";
|
||||||
String data = "{}";
|
String data = "{\"age\":30}";
|
||||||
|
|
||||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
@ -98,7 +99,7 @@ public class MiscTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String name = "test-name";
|
String name = "test-name";
|
||||||
String data = "{}";
|
String data = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
@ -127,7 +128,7 @@ public class MiscTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String name = alice.getAddress();
|
String name = alice.getAddress();
|
||||||
String data = "{}";
|
String data = "{\"age\":30}";
|
||||||
|
|
||||||
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
||||||
Transaction transaction = Transaction.fromData(repository, transactionData);
|
Transaction transaction = Transaction.fromData(repository, transactionData);
|
||||||
@ -145,7 +146,7 @@ public class MiscTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String name = "test-name";
|
String name = "test-name";
|
||||||
String data = "{}";
|
String data = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
@ -162,4 +163,61 @@ public class MiscTests extends Common {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// test registering and then orphaning
|
||||||
|
@Test
|
||||||
|
public void testRegisterNameAndOrphan() throws DataException {
|
||||||
|
try (final Repository repository = RepositoryManager.getRepository()) {
|
||||||
|
|
||||||
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
|
String name = "test-name";
|
||||||
|
String data = "{\"age\":30}";
|
||||||
|
|
||||||
|
// Ensure the name doesn't exist
|
||||||
|
assertNull(repository.getNameRepository().fromName(name));
|
||||||
|
|
||||||
|
// Register the name
|
||||||
|
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
||||||
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
|
|
||||||
|
// Ensure the name exists and the data is correct
|
||||||
|
assertEquals(data, repository.getNameRepository().fromName(name).getData());
|
||||||
|
|
||||||
|
// Orphan the latest block
|
||||||
|
BlockUtils.orphanBlocks(repository, 1);
|
||||||
|
|
||||||
|
// Ensure the name doesn't exist once again
|
||||||
|
assertNull(repository.getNameRepository().fromName(name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// test registering and then orphaning multiple times (to simulate several re-orgs)
|
||||||
|
@Test
|
||||||
|
public void testMultipleRegisterNameAndOrphan() throws DataException {
|
||||||
|
try (final Repository repository = RepositoryManager.getRepository()) {
|
||||||
|
|
||||||
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
|
String name = "test-name";
|
||||||
|
String data = "{\"age\":30}";
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
|
||||||
|
// Ensure the name doesn't exist
|
||||||
|
assertNull(repository.getNameRepository().fromName(name));
|
||||||
|
|
||||||
|
// Register the name
|
||||||
|
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, data);
|
||||||
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
|
|
||||||
|
// Ensure the name exists and the data is correct
|
||||||
|
assertEquals(data, repository.getNameRepository().fromName(name).getData());
|
||||||
|
|
||||||
|
// Orphan the latest block
|
||||||
|
BlockUtils.orphanBlocks(repository, 1);
|
||||||
|
|
||||||
|
// Ensure the name doesn't exist once again
|
||||||
|
assertNull(repository.getNameRepository().fromName(name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ public class UpdateTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String initialName = "initial-name";
|
String initialName = "initial-name";
|
||||||
String initialData = "initial-data";
|
String initialData = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData initialTransactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
TransactionData initialTransactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
||||||
TransactionUtils.signAndMint(repository, initialTransactionData, alice);
|
TransactionUtils.signAndMint(repository, initialTransactionData, alice);
|
||||||
@ -68,7 +68,7 @@ public class UpdateTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String initialName = "initial-name";
|
String initialName = "initial-name";
|
||||||
String initialData = "initial-data";
|
String initialData = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData initialTransactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
TransactionData initialTransactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
||||||
TransactionUtils.signAndMint(repository, initialTransactionData, alice);
|
TransactionUtils.signAndMint(repository, initialTransactionData, alice);
|
||||||
@ -108,7 +108,7 @@ public class UpdateTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String initialName = "initial-name";
|
String initialName = "initial-name";
|
||||||
String initialData = "initial-data";
|
String initialData = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData initialTransactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
TransactionData initialTransactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
||||||
TransactionUtils.signAndMint(repository, initialTransactionData, alice);
|
TransactionUtils.signAndMint(repository, initialTransactionData, alice);
|
||||||
@ -171,7 +171,7 @@ public class UpdateTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String initialName = "initial-name";
|
String initialName = "initial-name";
|
||||||
String initialData = "initial-data";
|
String initialData = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
@ -217,7 +217,7 @@ public class UpdateTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String initialName = "initial-name";
|
String initialName = "initial-name";
|
||||||
String initialData = "initial-data";
|
String initialData = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
@ -251,7 +251,7 @@ public class UpdateTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String initialName = "initial-name";
|
String initialName = "initial-name";
|
||||||
String initialData = "initial-data";
|
String initialData = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
@ -294,7 +294,7 @@ public class UpdateTests extends Common {
|
|||||||
// Register-name
|
// Register-name
|
||||||
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
|
||||||
String initialName = "initial-name";
|
String initialName = "initial-name";
|
||||||
String initialData = "initial-data";
|
String initialData = "{\"age\":30}";
|
||||||
|
|
||||||
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), initialName, initialData);
|
||||||
TransactionUtils.signAndMint(repository, transactionData, alice);
|
TransactionUtils.signAndMint(repository, transactionData, alice);
|
||||||
|
Loading…
Reference in New Issue
Block a user