From d1c9cabd18f9820ee3c763291b7b41bb351c4b2e Mon Sep 17 00:00:00 2001 From: Clinton Alexander Date: Thu, 15 Dec 2016 18:25:28 +0000 Subject: [PATCH] Added a trade to the test. --- .../kotlin/net/corda/vega/SimmValuationTest.kt | 14 ++++++++++---- .../kotlin/net/corda/testing/http/HttpUtils.kt | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt b/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt index b057b7114a..8571666ee1 100644 --- a/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt +++ b/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt @@ -1,5 +1,6 @@ package net.corda.vega +import com.opengamma.strata.product.common.BuySell import net.corda.core.getOrThrow import net.corda.core.node.services.ServiceInfo import net.corda.node.driver.driver @@ -8,8 +9,11 @@ import net.corda.testing.IntegrationTestCategory import net.corda.testing.getHostAndPort import net.corda.testing.http.HttpApi import net.corda.vega.api.PortfolioApi +import net.corda.vega.api.SwapDataModel import net.corda.vega.portfolio.Portfolio import org.junit.Test +import java.math.BigDecimal +import java.time.LocalDate class SimmValuationTest: IntegrationTestCategory { @@ -20,12 +24,13 @@ class SimmValuationTest: IntegrationTestCategory { val nodeAAddr = startNode("Bank A").getOrThrow().config.getHostAndPort("webAddress") val nodeBAddr = startNode(nodeBLegalName).getOrThrow().config.getHostAndPort("webAddress") - val nodeA = HttpApi.fromHostAndPort(nodeAAddr, "simmvaluationdemo") + val nodeA = HttpApi.fromHostAndPort(nodeAAddr, "api/simmvaluationdemo") val parties = getAvailablePartiesFor(nodeA) val nodeB = parties.counterparties.single { it.text == nodeBLegalName} assert(createTradeBetween(nodeA, nodeB)) assert(runValuationsBetween(nodeA, nodeB)) + waitForAllNodesToFinish() } } @@ -33,12 +38,13 @@ class SimmValuationTest: IntegrationTestCategory { return api.getJson("whoami") } - // TODO: create, verify, run, verify or determine a better test structure. private fun createTradeBetween(api: HttpApi, counterparty: PortfolioApi.ApiParty): Boolean { - return api.postJson("{$counterparty.id}/trades", mapOf("a" to "a")) + val trade = SwapDataModel("trade1", "desc", LocalDate.parse("2016-01-01"), "EUR_FIXED_1Y_EURIBOR_3M", + LocalDate.parse("2016-01-02"), LocalDate.parse("2020-01-02"), BuySell.BUY, BigDecimal.valueOf(1000), BigDecimal.valueOf(0.1)) + return api.putJson("${counterparty.id}/trades", trade) } private fun runValuationsBetween(api: HttpApi, counterparty: PortfolioApi.ApiParty): Boolean { - return api.postJson("{$counterparty.id/trade/TODO/valuations/calculate") + return api.postJson("${counterparty.id}/trade/TODO/valuations/calculate") } } \ No newline at end of file diff --git a/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt b/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt index b867f7349f..edc06c93be 100644 --- a/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt @@ -1,6 +1,7 @@ package net.corda.testing.http import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.module.kotlin.KotlinModule import net.corda.core.utilities.loggerFor import okhttp3.* import java.net.URL @@ -30,7 +31,7 @@ object HttpUtils { inline fun getJson(url: URL, params: Map = mapOf()) : T { val paramString = if(params.isEmpty()) "" else "?" + params.map { "${it.key}=${it.value}" }.joinToString("&") val parameterisedUrl = URL(url.toExternalForm() + paramString) - return ObjectMapper().readValue(parameterisedUrl, T::class.java) + return ObjectMapper().registerModule(KotlinModule()).readValue(parameterisedUrl, T::class.java) } private fun makeRequest(request: Request): Boolean {