CORDA-4123 Change MockNetworkParameterStorage to not rehash NetworkParameters (#6872)

* CORDA-4123 Change Mock Network Parameter Storage to not rehash the Network Parameters

* Fix Detekt
This commit is contained in:
William Vigor
2021-02-16 16:25:38 +00:00
committed by GitHub
parent 1a7401472f
commit 7261442c98
3 changed files with 102 additions and 40 deletions

View File

@ -20,17 +20,28 @@ import java.time.Instant
class MockNetworkParametersStorage(private var currentParameters: NetworkParameters = testNetworkParameters(modifiedTime = Instant.MIN)) : NetworkParametersStorage {
private val hashToParametersMap: HashMap<SecureHash, NetworkParameters> = HashMap()
private val hashToSignedParametersMap: HashMap<SecureHash, SignedNetworkParameters> = HashMap()
override var currentHash = currentParameters.computeHash()
override val defaultHash: SecureHash get() = currentHash
init {
storeCurrentParameters()
}
private fun NetworkParameters.computeHash(): SecureHash {
return withTestSerializationEnvIfNotSet {
this.serialize().hash
}
}
fun setCurrentParametersUnverified(networkParameters: NetworkParameters) {
currentParameters = networkParameters
currentHash = currentParameters.computeHash()
storeCurrentParameters()
}
override fun setCurrentParameters(currentSignedParameters: SignedDataWithCert<NetworkParameters>, trustRoots: Set<X509Certificate>) {
setCurrentParametersUnverified(currentSignedParameters.verifiedNetworkParametersCert(trustRoots))
currentParameters = currentSignedParameters.verifiedNetworkParametersCert(trustRoots)
currentHash = currentSignedParameters.raw.hash
storeCurrentParameters()
}
override fun lookupSigned(hash: SecureHash): SignedDataWithCert<NetworkParameters>? {
@ -39,13 +50,6 @@ class MockNetworkParametersStorage(private var currentParameters: NetworkParamet
override fun hasParameters(hash: SecureHash): Boolean = hash in hashToParametersMap
override val currentHash: SecureHash
get() {
return withTestSerializationEnvIfNotSet {
currentParameters.serialize().hash
}
}
override val defaultHash: SecureHash get() = currentHash
override fun lookup(hash: SecureHash): NetworkParameters? = hashToParametersMap[hash]
override fun getEpochFromHash(hash: SecureHash): Int? = lookup(hash)?.epoch
override fun saveParameters(signedNetworkParameters: SignedDataWithCert<NetworkParameters>) {