From 265ae195917c51cd640c71e930b8351d95bef66c Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sun, 13 Feb 2022 14:31:21 +0000 Subject: [PATCH] Fixed other failing tests due to increased REGISTER_NAME transaction fee. At some point we should determine the correct fee inside of generateBase(), but setting it explicitly adds confidence in testing for now. --- .../org/qortal/test/api/NamesApiTests.java | 5 ++ .../ArbitraryDataStorageCapacityTests.java | 3 + .../ArbitraryDataStoragePolicyTests.java | 72 +++++++++++-------- .../test/arbitrary/ArbitraryDataTests.java | 11 +++ .../ArbitraryTransactionMetadataTests.java | 3 + .../arbitrary/ArbitraryTransactionTests.java | 3 + 6 files changed, 67 insertions(+), 30 deletions(-) diff --git a/src/test/java/org/qortal/test/api/NamesApiTests.java b/src/test/java/org/qortal/test/api/NamesApiTests.java index 2d31c8c2..36b17a08 100644 --- a/src/test/java/org/qortal/test/api/NamesApiTests.java +++ b/src/test/java/org/qortal/test/api/NamesApiTests.java @@ -16,6 +16,8 @@ import org.qortal.test.common.ApiCommon; import org.qortal.test.common.Common; import org.qortal.test.common.TransactionUtils; import org.qortal.test.common.transaction.TestTransaction; +import org.qortal.transaction.RegisterNameTransaction; +import org.qortal.utils.NTP; public class NamesApiTests extends ApiCommon { @@ -47,6 +49,7 @@ public class NamesApiTests extends ApiCommon { String name = "test-name"; RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}"); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); assertNotNull(this.namesResource.getNamesByAddress(alice.getAddress(), null, null, null)); @@ -62,6 +65,7 @@ public class NamesApiTests extends ApiCommon { String name = "test-name"; RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}"); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); assertNotNull(this.namesResource.getName(name)); @@ -77,6 +81,7 @@ public class NamesApiTests extends ApiCommon { long price = 1_23456789L; TransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "{}"); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Sell-name diff --git a/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStorageCapacityTests.java b/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStorageCapacityTests.java index c38327c3..74d6417b 100644 --- a/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStorageCapacityTests.java +++ b/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStorageCapacityTests.java @@ -22,6 +22,7 @@ import org.qortal.test.common.ArbitraryUtils; import org.qortal.test.common.Common; import org.qortal.test.common.TransactionUtils; import org.qortal.test.common.transaction.TestTransaction; +import org.qortal.transaction.RegisterNameTransaction; import org.qortal.utils.Base58; import org.qortal.utils.NTP; @@ -153,6 +154,7 @@ public class ArbitraryDataStorageCapacityTests extends Common { PrivateKeyAccount alice = Common.getTestAccount(repository, "alice"); String aliceName = "alice"; RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), aliceName, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); Path alicePath = ArbitraryUtils.generateRandomDataPath(dataLength); ArbitraryDataFile aliceArbitraryDataFile = ArbitraryUtils.createAndMintTxn(repository, Base58.encode(alice.getPublicKey()), alicePath, aliceName, identifier, ArbitraryTransactionData.Method.PUT, service, alice, chunkSize); @@ -161,6 +163,7 @@ public class ArbitraryDataStorageCapacityTests extends Common { PrivateKeyAccount bob = Common.getTestAccount(repository, "bob"); String bobName = "bob"; transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(bob), bobName, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, bob); Path bobPath = ArbitraryUtils.generateRandomDataPath(dataLength); ArbitraryDataFile bobArbitraryDataFile = ArbitraryUtils.createAndMintTxn(repository, Base58.encode(bob.getPublicKey()), bobPath, bobName, identifier, ArbitraryTransactionData.Method.PUT, service, bob, chunkSize); diff --git a/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStoragePolicyTests.java b/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStoragePolicyTests.java index 30abc9f5..6c58c4c1 100644 --- a/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStoragePolicyTests.java +++ b/src/test/java/org/qortal/test/arbitrary/ArbitraryDataStoragePolicyTests.java @@ -21,7 +21,9 @@ import org.qortal.settings.Settings; import org.qortal.test.common.Common; import org.qortal.test.common.TransactionUtils; import org.qortal.test.common.transaction.TestTransaction; +import org.qortal.transaction.RegisterNameTransaction; import org.qortal.utils.Base58; +import org.qortal.utils.NTP; import java.io.IOException; import java.nio.file.Path; @@ -59,25 +61,27 @@ public class ArbitraryDataStoragePolicyTests extends Common { String name = "Test"; // Register the name to Alice - TransactionUtils.signAndMint(repository, new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""), alice); + RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); + TransactionUtils.signAndMint(repository, transactionData, alice); // Create transaction - ArbitraryTransactionData transactionData = this.createTxnWithName(repository, alice, name); + ArbitraryTransactionData arbitraryTransactionData = this.createTxnWithName(repository, alice, name); // Add name to followed list assertTrue(ResourceListManager.getInstance().addToList("followedNames", name, false)); // We should store and pre-fetch data for this transaction assertEquals(StoragePolicy.FOLLOWED_OR_VIEWED, Settings.getInstance().getStoragePolicy()); - assertTrue(storageManager.canStoreData(transactionData)); - assertTrue(storageManager.shouldPreFetchData(repository, transactionData)); + assertTrue(storageManager.canStoreData(arbitraryTransactionData)); + assertTrue(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); // Now unfollow the name assertTrue(ResourceListManager.getInstance().removeFromList("followedNames", name, false)); // We should store but not pre-fetch data for this transaction - assertTrue(storageManager.canStoreData(transactionData)); - assertFalse(storageManager.shouldPreFetchData(repository, transactionData)); + assertTrue(storageManager.canStoreData(arbitraryTransactionData)); + assertFalse(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); } } @@ -92,25 +96,27 @@ public class ArbitraryDataStoragePolicyTests extends Common { FieldUtils.writeField(Settings.getInstance(), "storagePolicy", "FOLLOWED", true); // Register the name to Alice - TransactionUtils.signAndMint(repository, new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""), alice); + RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); + TransactionUtils.signAndMint(repository, transactionData, alice); // Create transaction - ArbitraryTransactionData transactionData = this.createTxnWithName(repository, alice, name); + ArbitraryTransactionData arbitraryTransactionData = this.createTxnWithName(repository, alice, name); // Add name to followed list assertTrue(ResourceListManager.getInstance().addToList("followedNames", name, false)); // We should store and pre-fetch data for this transaction assertEquals(StoragePolicy.FOLLOWED, Settings.getInstance().getStoragePolicy()); - assertTrue(storageManager.canStoreData(transactionData)); - assertTrue(storageManager.shouldPreFetchData(repository, transactionData)); + assertTrue(storageManager.canStoreData(arbitraryTransactionData)); + assertTrue(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); // Now unfollow the name assertTrue(ResourceListManager.getInstance().removeFromList("followedNames", name, false)); // We shouldn't store or pre-fetch data for this transaction - assertFalse(storageManager.canStoreData(transactionData)); - assertFalse(storageManager.shouldPreFetchData(repository, transactionData)); + assertFalse(storageManager.canStoreData(arbitraryTransactionData)); + assertFalse(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); } } @@ -125,25 +131,27 @@ public class ArbitraryDataStoragePolicyTests extends Common { FieldUtils.writeField(Settings.getInstance(), "storagePolicy", "VIEWED", true); // Register the name to Alice - TransactionUtils.signAndMint(repository, new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""), alice); + RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); + TransactionUtils.signAndMint(repository, transactionData, alice); // Create transaction - ArbitraryTransactionData transactionData = this.createTxnWithName(repository, alice, name); + ArbitraryTransactionData arbitraryTransactionData = this.createTxnWithName(repository, alice, name); // Add name to followed list assertTrue(ResourceListManager.getInstance().addToList("followedNames", name, false)); // We should store but not pre-fetch data for this transaction assertEquals(StoragePolicy.VIEWED, Settings.getInstance().getStoragePolicy()); - assertTrue(storageManager.canStoreData(transactionData)); - assertFalse(storageManager.shouldPreFetchData(repository, transactionData)); + assertTrue(storageManager.canStoreData(arbitraryTransactionData)); + assertFalse(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); // Now unfollow the name assertTrue(ResourceListManager.getInstance().removeFromList("followedNames", name, false)); // We should store but not pre-fetch data for this transaction - assertTrue(storageManager.canStoreData(transactionData)); - assertFalse(storageManager.shouldPreFetchData(repository, transactionData)); + assertTrue(storageManager.canStoreData(arbitraryTransactionData)); + assertFalse(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); } } @@ -158,25 +166,27 @@ public class ArbitraryDataStoragePolicyTests extends Common { FieldUtils.writeField(Settings.getInstance(), "storagePolicy", "ALL", true); // Register the name to Alice - TransactionUtils.signAndMint(repository, new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""), alice); + RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); + TransactionUtils.signAndMint(repository, transactionData, alice); // Create transaction - ArbitraryTransactionData transactionData = this.createTxnWithName(repository, alice, name); + ArbitraryTransactionData arbitraryTransactionData = this.createTxnWithName(repository, alice, name); // Add name to followed list assertTrue(ResourceListManager.getInstance().addToList("followedNames", name, false)); // We should store and pre-fetch data for this transaction assertEquals(StoragePolicy.ALL, Settings.getInstance().getStoragePolicy()); - assertTrue(storageManager.canStoreData(transactionData)); - assertTrue(storageManager.shouldPreFetchData(repository, transactionData)); + assertTrue(storageManager.canStoreData(arbitraryTransactionData)); + assertTrue(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); // Now unfollow the name assertTrue(ResourceListManager.getInstance().removeFromList("followedNames", name, false)); // We should store and pre-fetch data for this transaction - assertTrue(storageManager.canStoreData(transactionData)); - assertTrue(storageManager.shouldPreFetchData(repository, transactionData)); + assertTrue(storageManager.canStoreData(arbitraryTransactionData)); + assertTrue(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); } } @@ -191,25 +201,27 @@ public class ArbitraryDataStoragePolicyTests extends Common { FieldUtils.writeField(Settings.getInstance(), "storagePolicy", "NONE", true); // Register the name to Alice - TransactionUtils.signAndMint(repository, new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""), alice); + RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); + TransactionUtils.signAndMint(repository, transactionData, alice); // Create transaction - ArbitraryTransactionData transactionData = this.createTxnWithName(repository, alice, name); + ArbitraryTransactionData arbitraryTransactionData = this.createTxnWithName(repository, alice, name); // Add name to followed list assertTrue(ResourceListManager.getInstance().addToList("followedNames", name, false)); // We shouldn't store or pre-fetch data for this transaction assertEquals(StoragePolicy.NONE, Settings.getInstance().getStoragePolicy()); - assertFalse(storageManager.canStoreData(transactionData)); - assertFalse(storageManager.shouldPreFetchData(repository, transactionData)); + assertFalse(storageManager.canStoreData(arbitraryTransactionData)); + assertFalse(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); // Now unfollow the name assertTrue(ResourceListManager.getInstance().removeFromList("followedNames", name, false)); // We shouldn't store or pre-fetch data for this transaction - assertFalse(storageManager.canStoreData(transactionData)); - assertFalse(storageManager.shouldPreFetchData(repository, transactionData)); + assertFalse(storageManager.canStoreData(arbitraryTransactionData)); + assertFalse(storageManager.shouldPreFetchData(repository, arbitraryTransactionData)); } } diff --git a/src/test/java/org/qortal/test/arbitrary/ArbitraryDataTests.java b/src/test/java/org/qortal/test/arbitrary/ArbitraryDataTests.java index e8e4a288..c461f798 100644 --- a/src/test/java/org/qortal/test/arbitrary/ArbitraryDataTests.java +++ b/src/test/java/org/qortal/test/arbitrary/ArbitraryDataTests.java @@ -23,7 +23,9 @@ import org.qortal.test.common.ArbitraryUtils; import org.qortal.test.common.Common; import org.qortal.test.common.TransactionUtils; import org.qortal.test.common.transaction.TestTransaction; +import org.qortal.transaction.RegisterNameTransaction; import org.qortal.utils.Base58; +import org.qortal.utils.NTP; import java.io.IOException; import java.nio.file.Files; @@ -55,6 +57,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -149,6 +152,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -181,6 +185,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -226,6 +231,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -294,6 +300,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -343,6 +350,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -380,6 +388,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -409,6 +418,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction @@ -435,6 +445,7 @@ public class ArbitraryDataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction diff --git a/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionMetadataTests.java b/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionMetadataTests.java index 5f76c9c0..305cff9c 100644 --- a/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionMetadataTests.java +++ b/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionMetadataTests.java @@ -20,7 +20,9 @@ import org.qortal.test.common.ArbitraryUtils; import org.qortal.test.common.Common; import org.qortal.test.common.TransactionUtils; import org.qortal.test.common.transaction.TestTransaction; +import org.qortal.transaction.RegisterNameTransaction; import org.qortal.utils.Base58; +import org.qortal.utils.NTP; import java.io.IOException; import java.nio.file.Path; @@ -50,6 +52,7 @@ public class ArbitraryTransactionMetadataTests extends Common { // Register the name to Alice RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, transactionData, alice); // Create PUT transaction diff --git a/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionTests.java b/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionTests.java index 150038ca..5535c5ed 100644 --- a/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionTests.java +++ b/src/test/java/org/qortal/test/arbitrary/ArbitraryTransactionTests.java @@ -19,7 +19,9 @@ import org.qortal.test.common.Common; import org.qortal.test.common.TransactionUtils; import org.qortal.test.common.transaction.TestTransaction; import org.qortal.transaction.ArbitraryTransaction; +import org.qortal.transaction.RegisterNameTransaction; import org.qortal.utils.Base58; +import org.qortal.utils.NTP; import java.io.IOException; import java.nio.file.Path; @@ -46,6 +48,7 @@ public class ArbitraryTransactionTests extends Common { // Register the name to Alice RegisterNameTransactionData registerNameTransactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, ""); + registerNameTransactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(NTP.getTime())); TransactionUtils.signAndMint(repository, registerNameTransactionData, alice); // Set difficulty to 1