Skip to content

Commit b0b07b0

Browse files
author
Ronald Holshausen
committedJan 25, 2020
fix: Message should return metadata as Map<String, Object> #1006
1 parent 86f5e80 commit b0b07b0

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed
 

Diff for: ‎consumer/pact-jvm-consumer-junit/src/main/java/au/com/dius/pact/consumer/junit/MessagePactProviderRule.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class MessagePactProviderRule extends ExternalResource {
3535
private byte[] message;
3636
private Map<String, Message> providerStateMessages;
3737
private MessagePact messagePact;
38-
private Map<String, String> metadata;
38+
private Map<String, Object> metadata;
3939

4040
/**
4141
* @param testClassInstance
@@ -237,7 +237,7 @@ public byte[] getMessage() {
237237
return message;
238238
}
239239

240-
public Map<String, String> getMetadata() {
240+
public Map<String, Object> getMetadata() {
241241
if (metadata == null) {
242242
throw new UnsupportedOperationException("Message metadata was not created and cannot be retrieved." +
243243
" Check @Pact and @PactVerification match.");

Diff for: ‎consumer/pact-jvm-consumer/src/main/kotlin/au/com/dius/pact/consumer/MessagePactBuilder.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class MessagePactBuilder(
110110
if (contentTypeEntry == null) {
111111
metadata["contentType"] = contentType.toString()
112112
} else {
113-
contentType = ContentType(contentTypeEntry.value)
113+
contentType = ContentType(contentTypeEntry.value.toString())
114114
metadata.remove(contentTypeEntry.key)
115115
metadata["contentType"] = contentTypeEntry.value
116116
}

Diff for: ‎core/matchers/src/main/kotlin/au/com/dius/pact/core/matchers/Matching.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ object Matching : KLogging() {
116116
}
117117

118118
@JvmStatic
119-
fun compareMessageMetadata(e: Map<String, Any>, a: Map<String, Any>, matchers: MatchingRules?): List<MetadataMismatch> {
119+
fun compareMessageMetadata(e: Map<String, Any?>, a: Map<String, Any?>, matchers: MatchingRules?): List<MetadataMismatch> {
120120
return e.entries.fold(listOf()) { list, value ->
121121
if (a.containsKey(value.key)) {
122122
val actual = a[value.key]

Diff for: ‎core/model/src/main/kotlin/au/com/dius/pact/core/model/messaging/Message.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Message @JvmOverloads constructor(
2626
var contents: OptionalBody = OptionalBody.missing(),
2727
var matchingRules: MatchingRules = MatchingRulesImpl(),
2828
var generators: Generators = Generators(),
29-
var metaData: Map<String, String> = mapOf(),
29+
var metaData: Map<String, Any?> = mapOf(),
3030
override val interactionId: String? = null
3131
) : Interaction {
3232

@@ -127,7 +127,7 @@ class Message @JvmOverloads constructor(
127127
"matchingRules=$matchingRules, generators=$generators, metaData=$metaData)"
128128
}
129129

130-
fun withMetaData(metadata: Map<String, String>): Message {
130+
fun withMetaData(metadata: Map<String, Any>): Message {
131131
this.metaData = metadata
132132
return this
133133
}
@@ -147,7 +147,7 @@ class Message @JvmOverloads constructor(
147147
}
148148

149149
val metaData = if (json.has("metaData"))
150-
json["metaData"].obj.entrySet().associate { it.key to Json.toString(it.value) }
150+
json["metaData"].obj.entrySet().associate { it.key to Json.fromJson(it.value) }
151151
else
152152
emptyMap()
153153

@@ -184,7 +184,7 @@ class Message @JvmOverloads constructor(
184184
}
185185
}
186186

187-
fun getContentType(metaData: Map<String, Any>): String {
187+
fun getContentType(metaData: Map<String, Any?>): String {
188188
return metaData.entries.find {
189189
it.key.toLowerCase() == "contenttype" || it.key.toLowerCase() == "content-type"
190190
}?.value?.toString() ?: JSON

0 commit comments

Comments
 (0)
Please sign in to comment.