Skip to content
Snippets Groups Projects
Select Git revision
  • b4639b36a06c6a60fa384b4689925f97c2ba2af2
  • 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

JSONEncoderTests.swift

Blame
  • JSONDecoderTests.swift 1.84 KiB
    import CustomDump
    import XCTest
    @testable import XXClient
    
    final class JSONDecoderTests: XCTestCase {
      func testConvertingNumberToString() {
        assertConvertingNumberToString(
          input: #"{"number":1234567890,"text":"hello"}"#,
          key: "number",
          expectedOutput: #"{"number":"1234567890","text":"hello"}"#
        )
    
        assertConvertingNumberToString(
          input: #"{"text":"hello","number":1234567890}"#,
          key: "number",
          expectedOutput: #"{"text":"hello","number":"1234567890"}"#
        )
    
        assertConvertingNumberToString(
          input: #"{  "number"  :  1234567890  ,  "text"  :  "hello"  }"#,
          key: "number",
          expectedOutput: #"{  "number"  :  "1234567890"  ,  "text"  :  "hello"  }"#
        )
    
        assertConvertingNumberToString(
          input: #"{  "text"  :  "hello"  ,  "number"  :  1234567890  }"#,
          key: "number",
          expectedOutput: #"{  "text"  :  "hello"  ,  "number"  :  "1234567890"  }"#
        )
    
        assertConvertingNumberToString(
          input: """
          {
            "number": 1234567890,
            "text": "hello"
          }
          """,
          key: "number",
          expectedOutput: """
          {
            "number": "1234567890",
            "text": "hello"
          }
          """
        )
    
        assertConvertingNumberToString(
          input: """
          {
            "text": "hello",
            "number": 1234567890
          }
          """,
          key: "number",
          expectedOutput: """
          {
            "text": "hello",
            "number": "1234567890"
          }
          """
        )
      }
    }
    
    private func assertConvertingNumberToString(
      input: String,
      key: String,
      expectedOutput: String,
      file: StaticString = #file,
      line: UInt = #line
    ) {
      XCTAssertNoDifference(
        String(
          data: JSONDecoder().convertNumberToString(
            in: input.data(using: .utf8)!,
            at: key
          ),
          encoding: .utf8
        )!,
        expectedOutput,
        file: file,
        line: line
      )
    }