From 191bcdb3289ac7b8296747eaa50e9373ac85f65a Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Sat, 12 Nov 2022 00:30:05 +0100 Subject: [PATCH] Make MessageService.metadata optional --- Sources/XXClient/Models/MessageService.swift | 4 +-- .../Models/MessageServiceTests.swift | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Sources/XXClient/Models/MessageService.swift b/Sources/XXClient/Models/MessageService.swift index 583225e0..bc43edb7 100644 --- a/Sources/XXClient/Models/MessageService.swift +++ b/Sources/XXClient/Models/MessageService.swift @@ -4,7 +4,7 @@ public struct MessageService: Equatable { public init( identifier: Data, tag: String, - metadata: Data + metadata: Data? ) { self.identifier = identifier self.tag = tag @@ -13,7 +13,7 @@ public struct MessageService: Equatable { public var identifier: Data public var tag: String - public var metadata: Data + public var metadata: Data? } extension MessageService: Codable { diff --git a/Tests/XXClientTests/Models/MessageServiceTests.swift b/Tests/XXClientTests/Models/MessageServiceTests.swift index e0a0d9ba..c76f6dc4 100644 --- a/Tests/XXClientTests/Models/MessageServiceTests.swift +++ b/Tests/XXClientTests/Models/MessageServiceTests.swift @@ -29,6 +29,31 @@ final class MessageServiceTests: XCTestCase { XCTAssertNoDifference(decodedModel, model) } + func testCodingWithoutMetadata() throws { + let identifierB64 = "AQID" + let tag = "TestTag 2" + let jsonString = """ + { + "Identifier": "\(identifierB64)", + "Tag": "\(tag)", + "Metadata": null + } + """ + let jsonData = jsonString.data(using: .utf8)! + let model = try MessageService.decode(jsonData) + + XCTAssertNoDifference(model, MessageService( + identifier: Data(base64Encoded: identifierB64)!, + tag: tag, + metadata: nil + )) + + let encodedModel = try model.encode() + let decodedModel = try MessageService.decode(encodedModel) + + XCTAssertNoDifference(decodedModel, model) + } + func testCodingArray() throws { let models = [ MessageService( -- GitLab