2 // GuardEscapeTest.swift
5 // Created by Hori,Masaki on 2017/12/03.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
16 class GuardEscapeTest: XCTestCase {
18 override func setUp() {
22 let store = TemporaryDataStore.oneTimeEditor()
23 store.guardEscaped().forEach(store.delete)
26 override func tearDown() {
28 let store = TemporaryDataStore.oneTimeEditor()
29 store.guardEscaped().forEach(store.delete)
34 func testShipEntity() {
37 let serverStore = ServerDataStore.default
39 guard let ship = serverStore.ship(by: shipId) else {
41 XCTFail("can not get Ship id \(shipId)")
46 XCTAssertFalse(ship.guardEscaped)
48 let tempStore = TemporaryDataStore.oneTimeEditor()
49 guard let g = tempStore.createGuardEscaped() else {
51 XCTFail("can not create GuardEscaped")
61 XCTAssertTrue(ship.guardEscaped)
65 func testGuardShelter() {
70 let store = ServerDataStore.oneTimeEditor()
72 guard let deck1 = store.deck(by: 1) else {
74 XCTFail("Can not get Deck.")
78 (0...5).forEach { deck1.setShip(id: $0 + 1, for: $0) }
79 guard let deck2 = store.deck(by: 2) else {
81 XCTFail("Can not get Deck.")
85 (0...5).forEach { deck2.setShip(id: $0 + 1 + 6, for: $0) }
91 let store = TemporaryDataStore.oneTimeEditor()
92 store.guardEscaped().forEach(store.delete)
93 store.battles().forEach(store.delete)
94 guard let battle = store.createBattle() else {
96 XCTFail("Can not create battle")
106 let rawValue: [String: Any] = [
110 "api_escape_idx": [9, 12],
116 guard let json = JSON(rawValue: rawValue) else {
118 XCTFail("json is nil")
122 let param = Parameter(["Test": "Test"])
123 let resultApi = APIResponse(api: API(endpointPath: Endpoint.battleResult.rawValue), parameter: param, json: json)
124 GuardShelterCommand(apiResponse: resultApi).execute()
126 let goBackApi = APIResponse(api: API(endpointPath: Endpoint.goback.rawValue), parameter: param, json: json)
127 GuardShelterCommand(apiResponse: goBackApi).execute()
132 let store = ServerDataStore.default
133 let ships1 = store.ships(byDeckId: 1)
134 XCTAssertEqual(ships1.count, 6)
135 XCTAssertEqual(ships1[0].guardEscaped, false)
136 XCTAssertEqual(ships1[1].guardEscaped, false)
137 XCTAssertEqual(ships1[2].guardEscaped, false)
138 XCTAssertEqual(ships1[3].guardEscaped, false)
139 XCTAssertEqual(ships1[4].guardEscaped, false)
140 XCTAssertEqual(ships1[5].guardEscaped, false)
142 let ships2 = store.ships(byDeckId: 2)
143 XCTAssertEqual(ships2.count, 6)
144 XCTAssertEqual(ships2[0].guardEscaped, false)
145 XCTAssertEqual(ships2[1].guardEscaped, false)
146 XCTAssertEqual(ships2[2].guardEscaped, true)
147 XCTAssertEqual(ships2[3].guardEscaped, true)
148 XCTAssertEqual(ships2[4].guardEscaped, false)
149 XCTAssertEqual(ships2[5].guardEscaped, false)
154 let store = TemporaryDataStore.oneTimeEditor()
155 store.guardEscaped().forEach(store.delete)
156 store.battles().forEach(store.delete)
166 let store = ServerDataStore.oneTimeEditor()
168 guard let deck1 = store.deck(by: 3) else {
170 XCTFail("Can not get Deck.")
174 (0...6).forEach { deck1.setShip(id: $0 + 5, for: $0) }
180 let store = TemporaryDataStore.oneTimeEditor()
181 store.guardEscaped().forEach(store.delete)
182 store.battles().forEach(store.delete)
183 guard let battle = store.createBattle() else {
185 XCTFail("Can not create battle")
194 let rawValue: [String: Any] = [
198 "api_escape_idx": [3, 4]
203 guard let json = JSON(rawValue: rawValue) else {
205 XCTFail("json is nil")
209 let param = Parameter(["Test": "Test"])
210 let resultApi = APIResponse(api: API(endpointPath: Endpoint.battleResult.rawValue), parameter: param, json: json)
211 GuardShelterCommand(apiResponse: resultApi).execute()
213 let goBackApi = APIResponse(api: API(endpointPath: Endpoint.gobakAlone.rawValue), parameter: param, json: json)
214 GuardShelterCommand(apiResponse: goBackApi).execute()
219 let store = ServerDataStore.default
220 let ships1 = store.ships(byDeckId: 3)
221 XCTAssertEqual(ships1.count, 7)
222 XCTAssertEqual(ships1[0].guardEscaped, false)
223 XCTAssertEqual(ships1[1].guardEscaped, false)
224 XCTAssertEqual(ships1[2].guardEscaped, true)
225 XCTAssertEqual(ships1[3].guardEscaped, false)
226 XCTAssertEqual(ships1[4].guardEscaped, false)
227 XCTAssertEqual(ships1[5].guardEscaped, false)
228 XCTAssertEqual(ships1[6].guardEscaped, false)
234 let store = TemporaryDataStore.oneTimeEditor()
235 store.guardEscaped().forEach(store.delete)
236 store.battles().forEach(store.delete)