-
-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathObjectMergerTests.swift
47 lines (38 loc) · 1.1 KB
/
ObjectMergerTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//
// ObjectMergerTests.swift
// MoreCodableTests
//
// Created by Tatsuya Tanaka on 20180302.
// Copyright © 2018年 tattn. All rights reserved.
//
import XCTest
import MoreCodable
class ObjectMergerTests: XCTestCase {
override func setUp() {
super.setUp()
}
override func tearDown() {
super.tearDown()
}
func testSimpleCase() throws {
struct APIResponse: Encodable {
let id: Int
let title: String
let foo: String
}
struct APIResponse2: Encodable {
let tags: [String]
}
struct Model: Decodable {
let id: Int
let title: String
let tags: [String]
}
let response = APIResponse(id: 0, title: "Awesome article", foo: "bar")
let response2 = APIResponse2(tags: ["swift", "ios", "macos"])
let model = try ObjectMerger().merge(Model.self, response, response2)
XCTAssertEqual(model.id, response.id)
XCTAssertEqual(model.title, response.title)
XCTAssertEqual(model.tags, response2.tags)
}
}