Added a trade to the test.

This commit is contained in:
Clinton Alexander 2016-12-15 18:25:28 +00:00 committed by Clinton Alexander
parent 6be21c7da4
commit d1c9cabd18
2 changed files with 12 additions and 5 deletions

View File

@ -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<PortfolioApi.AvailableParties>("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")
}
}

View File

@ -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<reified T: Any> getJson(url: URL, params: Map<String, String> = 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 {