Skip to content
Snippets Groups Projects
Select Git revision
  • f89c6fce67a70264bbb230252cad86edaabfd295
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

Package.swift

Blame
  • MessageServiceTests.swift 1.51 KiB
    import CustomDump
    import XCTest
    @testable import XXClient
    
    final class MessageServiceTests: XCTestCase {
      func testCoding() throws {
        let identifierB64 = "AQID"
        let tag = "TestTag 2"
        let metadataB64 = "BAUG"
        let jsonString = """
        {
         "Identifier": "\(identifierB64)",
         "Tag": "\(tag)",
         "Metadata": "\(metadataB64)"
        }
        """
        let jsonData = jsonString.data(using: .utf8)!
        let model = try MessageService.decode(jsonData)
    
        XCTAssertNoDifference(model, MessageService(
          identifier: Data(base64Encoded: identifierB64)!,
          tag: tag,
          metadata: Data(base64Encoded: metadataB64)!
        ))
    
        let encodedModel = try model.encode()
        let decodedModel = try MessageService.decode(encodedModel)
    
        XCTAssertNoDifference(decodedModel, model)
      }
    
      func testCodingArray() throws {
        let models = [
          MessageService(
            identifier: "service1-id".data(using: .utf8)!,
            tag: "service1-tag",
            metadata: "service1-metadata".data(using: .utf8)!
          ),
          MessageService(
            identifier: "service2-id".data(using: .utf8)!,
            tag: "service2-tag",
            metadata: "service2-metadata".data(using: .utf8)!
          ),
          MessageService(
            identifier: "service3-id".data(using: .utf8)!,
            tag: "service3-tag",
            metadata: "service3-metadata".data(using: .utf8)!
          ),
        ]
    
        let encodedModels = try models.encode()
        let decodedModels = try [MessageService].decode(encodedModels)
    
        XCTAssertNoDifference(models, decodedModels)
      }
    }