+ protected fun matchesSone(sone: Sone) = OneByOneMatcher<Map<String, String?>>().apply {
+ expect("ID", sone.id) { it["ID"] }
+ expect("name", sone.name) { it["Name"] }
+ expect("last updated", sone.time.toString()) { it["LastUpdated"] }
+ expect("nice name", SoneAccessor.getNiceName(sone)) { it["NiceName"] }
+ sone.profile.fields.forEach { field ->
+ expect("field: ${field.name}", field.value) { it["Field.${field.name}"] }
+ }
+ }
+