mirror of
https://github.com/corda/corda.git
synced 2024-12-20 05:28:21 +00:00
Fixed failing SmokeTests using Vault Query (#1032)
* Fixed failing SmokeTest caused by incorrect default count filter. * Fixed incorrect spend value for expected assertion. * Remove deprecated test (unintentionally merged after rebase from master)
This commit is contained in:
parent
78ecff7933
commit
d6deeb2bd6
@ -134,33 +134,10 @@ class StandaloneCordaRPClientTest {
|
|||||||
assertEquals(1, updateCount)
|
assertEquals(1, updateCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
fun `test vault`() {
|
|
||||||
val (vault, vaultUpdates) = rpcProxy.vaultAndUpdates()
|
|
||||||
assertEquals(0, vault.size)
|
|
||||||
|
|
||||||
var updateCount = 0
|
|
||||||
vaultUpdates.subscribe { update ->
|
|
||||||
log.info("Vault>> FlowId=${update.flowId}")
|
|
||||||
++updateCount
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now issue some cash
|
|
||||||
rpcProxy.startFlow(::CashIssueFlow, 629.POUNDS, OpaqueBytes.of(0), notaryNode.legalIdentity, notaryNode.notaryIdentity)
|
|
||||||
.returnValue.getOrThrow(timeout)
|
|
||||||
assertNotEquals(0, updateCount)
|
|
||||||
|
|
||||||
// Check that this cash exists in the vault
|
|
||||||
val cashBalance = rpcProxy.getCashBalances()
|
|
||||||
log.info("Cash Balances: $cashBalance")
|
|
||||||
assertEquals(1, cashBalance.size)
|
|
||||||
assertEquals(629.POUNDS, cashBalance[Currency.getInstance("GBP")])
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `test vault track by`() {
|
fun `test vault track by`() {
|
||||||
val (vault, vaultUpdates) = rpcProxy.vaultTrackBy<Cash.State>()
|
val (vault, vaultUpdates) = rpcProxy.vaultTrackBy<Cash.State>()
|
||||||
assertEquals(0, vault.totalStatesAvailable)
|
assertEquals(0, vault.states.size)
|
||||||
|
|
||||||
var updateCount = 0
|
var updateCount = 0
|
||||||
vaultUpdates.subscribe { update ->
|
vaultUpdates.subscribe { update ->
|
||||||
|
@ -45,7 +45,7 @@ class HibernateVaultQueryImpl(hibernateConfig: HibernateConfiguration,
|
|||||||
var totalStates = -1L
|
var totalStates = -1L
|
||||||
if (!paging.isDefault) {
|
if (!paging.isDefault) {
|
||||||
val count = builder { VaultSchemaV1.VaultStates::recordedTime.count() }
|
val count = builder { VaultSchemaV1.VaultStates::recordedTime.count() }
|
||||||
val countCriteria = VaultCustomQueryCriteria(count)
|
val countCriteria = VaultCustomQueryCriteria(count, Vault.StateStatus.ALL)
|
||||||
val results = queryBy(contractType, criteria.and(countCriteria))
|
val results = queryBy(contractType, criteria.and(countCriteria))
|
||||||
totalStates = results.otherResults[0] as Long
|
totalStates = results.otherResults[0] as Long
|
||||||
}
|
}
|
||||||
|
@ -187,6 +187,30 @@ class VaultQueryTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `unconsumed states with count`() {
|
||||||
|
database.transaction {
|
||||||
|
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
|
||||||
|
val criteria = VaultQueryCriteria(status = Vault.StateStatus.ALL)
|
||||||
|
val paging = PageSpecification(DEFAULT_PAGE_NUM, 10)
|
||||||
|
val resultsBeforeConsume = vaultQuerySvc.queryBy<ContractState>(criteria, paging)
|
||||||
|
assertThat(resultsBeforeConsume.states).hasSize(4)
|
||||||
|
assertThat(resultsBeforeConsume.totalStatesAvailable).isEqualTo(4)
|
||||||
|
|
||||||
|
services.consumeCash(75.DOLLARS)
|
||||||
|
|
||||||
|
val consumedCriteria = VaultQueryCriteria(status = Vault.StateStatus.UNCONSUMED)
|
||||||
|
val resultsAfterConsume = vaultQuerySvc.queryBy<ContractState>(consumedCriteria, paging)
|
||||||
|
assertThat(resultsAfterConsume.states).hasSize(1)
|
||||||
|
assertThat(resultsAfterConsume.totalStatesAvailable).isEqualTo(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `unconsumed cash states simple`() {
|
fun `unconsumed cash states simple`() {
|
||||||
database.transaction {
|
database.transaction {
|
||||||
@ -331,6 +355,30 @@ class VaultQueryTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `consumed states with count`() {
|
||||||
|
database.transaction {
|
||||||
|
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
services.fillWithSomeTestCash(25.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
|
||||||
|
val criteria = VaultQueryCriteria(status = Vault.StateStatus.ALL)
|
||||||
|
val paging = PageSpecification(DEFAULT_PAGE_NUM, 10)
|
||||||
|
val resultsBeforeConsume = vaultQuerySvc.queryBy<ContractState>(criteria, paging)
|
||||||
|
assertThat(resultsBeforeConsume.states).hasSize(4)
|
||||||
|
assertThat(resultsBeforeConsume.totalStatesAvailable).isEqualTo(4)
|
||||||
|
|
||||||
|
services.consumeCash(75.DOLLARS)
|
||||||
|
|
||||||
|
val consumedCriteria = VaultQueryCriteria(status = Vault.StateStatus.CONSUMED)
|
||||||
|
val resultsAfterConsume = vaultQuerySvc.queryBy<ContractState>(consumedCriteria, paging)
|
||||||
|
assertThat(resultsAfterConsume.states).hasSize(3)
|
||||||
|
assertThat(resultsAfterConsume.totalStatesAvailable).isEqualTo(3)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `all states`() {
|
fun `all states`() {
|
||||||
database.transaction {
|
database.transaction {
|
||||||
@ -349,6 +397,25 @@ class VaultQueryTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `all states with count`() {
|
||||||
|
database.transaction {
|
||||||
|
|
||||||
|
services.fillWithSomeTestCash(100.DOLLARS, DUMMY_NOTARY, 1, 1, Random(0L))
|
||||||
|
|
||||||
|
val criteria = VaultQueryCriteria(status = Vault.StateStatus.ALL)
|
||||||
|
val paging = PageSpecification(DEFAULT_PAGE_NUM, 10)
|
||||||
|
val resultsBeforeConsume = vaultQuerySvc.queryBy<ContractState>(criteria, paging)
|
||||||
|
assertThat(resultsBeforeConsume.states).hasSize(1)
|
||||||
|
assertThat(resultsBeforeConsume.totalStatesAvailable).isEqualTo(1)
|
||||||
|
|
||||||
|
services.consumeCash(50.DOLLARS) // consumed 100 (spent), produced 50 (change)
|
||||||
|
|
||||||
|
val resultsAfterConsume = vaultQuerySvc.queryBy<ContractState>(criteria, paging)
|
||||||
|
assertThat(resultsAfterConsume.states).hasSize(2)
|
||||||
|
assertThat(resultsAfterConsume.totalStatesAvailable).isEqualTo(2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val CASH_NOTARY_KEY: KeyPair by lazy { entropyToKeyPair(BigInteger.valueOf(20)) }
|
val CASH_NOTARY_KEY: KeyPair by lazy { entropyToKeyPair(BigInteger.valueOf(20)) }
|
||||||
val CASH_NOTARY: Party get() = Party(X500Name("CN=Cash Notary Service,O=R3,OU=corda,L=Zurich,C=CH"), CASH_NOTARY_KEY.public)
|
val CASH_NOTARY: Party get() = Party(X500Name("CN=Cash Notary Service,O=R3,OU=corda,L=Zurich,C=CH"), CASH_NOTARY_KEY.public)
|
||||||
|
Loading…
Reference in New Issue
Block a user