OSDN Git Service

テストを一つにまとめた
[kcd/KCD.git] / KCDTests / NormalBattleTest.swift
similarity index 85%
rename from KCDTests/SecondFleetBattleTest.swift
rename to KCDTests/NormalBattleTest.swift
index be4d6bc..ff22682 100644 (file)
@@ -1,8 +1,8 @@
 //
-//  SecondFleetBattleTest.swift
+//  NormalBattleTest.swift
 //  KCDTests
 //
-//  Created by Hori,Masaki on 2017/10/22.
+//  Created by Hori,Masaki on 2017/10/19.
 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
 //
 
@@ -12,18 +12,14 @@ import XCTest
 
 import SwiftyJSON
 
-class SecondFleetBattleTest: XCTestCase {
+class NormalBattleTest: XCTestCase {
     
     var savedShips: [Ship] = []
     var shipsHp: [Int] = []
     var shipEquipments: [NSOrderedSet] = []
     var shipExSlot: [Int] = []
     
-    let deckId = 2
-    
-    override func setUp() {
-        
-        super.setUp()
+    func initBattleFleet(_ fleet: Int) {
         
         savedShips = []
         shipsHp = []
@@ -37,10 +33,10 @@ class SecondFleetBattleTest: XCTestCase {
             guard let secondFleet = store.deck(by: 2) else { return XCTFail("Can not get Deck.") }
             (0...5).forEach { secondFleet.setShip(id: $0 + 10, for: $0) }
             
-            guard let deck = store.deck(by: deckId) else { return XCTFail("Can not get Deck.") }
+            guard let deck = store.deck(by: fleet) else { return XCTFail("Can not get Deck.") }
             (0...5).forEach { deck.setShip(id: $0 + 1, for: $0) }
             
-            store.ships(byDeckId: deckId).forEach {
+            store.ships(byDeckId: fleet).forEach {
                 $0.nowhp = $0.maxhp
                 
                 savedShips += [$0]
@@ -62,12 +58,12 @@ class SecondFleetBattleTest: XCTestCase {
             XCTAssertNotNil(json["api_result"])
             
             let paramValue: [String: String] = [
-                "api_deck_id": "\(deckId)",
+                "api_deck_id": "\(fleet)",
                 "api_maparea_id": "1",
                 "api_mapinfo_no": "1"
             ]
             let param = Parameter(paramValue)
-            XCTAssertEqual(param["api_deck_id"].string, "\(deckId)")
+            XCTAssertEqual(param["api_deck_id"].string, "\(fleet)")
             
             let api = APIResponse(api: MapAPI.start.rawValue, parameter: param, json: json)
             XCTAssertEqual(api.json, json)
@@ -83,11 +79,11 @@ class SecondFleetBattleTest: XCTestCase {
             let store = TemporaryDataStore.default
             let battle = store.battle()
             XCTAssertNotNil(battle)
-            XCTAssertEqual(battle?.deckId, deckId)
+            XCTAssertEqual(battle?.deckId, fleet)
         }
     }
     
-    override func tearDown() {
+    func clear(_ fleet: Int) {
         
         do {
             ResetSortie().reset()
@@ -102,19 +98,18 @@ class SecondFleetBattleTest: XCTestCase {
         do {
             let store = ServerDataStore.oneTimeEditor()
             
-            let ships = store.ships(byDeckId: deckId)
+            let ships = store.ships(byDeckId: fleet)
             
             zip(ships, shipsHp).forEach { $0.nowhp = $1 }
             zip(ships, shipEquipments).forEach { $0.equippedItem = $1 }
             zip(ships, shipExSlot).forEach { $0.slot_ex = $1 }
             
-            guard let deck = store.deck(by: deckId) else { return XCTFail("Can not get Deck.") }
+            guard let deck = store.deck(by: fleet) else { return XCTFail("Can not get Deck.") }
             savedShips.enumerated().forEach { deck.setShip(id: $0.element.id, for: $0.offset) }
         }
-        super.tearDown()
     }
     
-    func testNormalBattle() {
+    func normalBattle(_ fleet: Int) {
         
         // 戦闘(昼戦)
         do {
@@ -199,7 +194,7 @@ class SecondFleetBattleTest: XCTestCase {
         // HPチェック
         do {
             let store = ServerDataStore.oneTimeEditor()
-            let ships = store.ships(byDeckId: deckId)
+            let ships = store.ships(byDeckId: fleet)
             
             XCTAssertEqual(ships.count, 6)
             
@@ -212,7 +207,7 @@ class SecondFleetBattleTest: XCTestCase {
         }
     }
     
-    func testDamageControl() {
+    func damageControl(_ fleet: Int) {
         
         // ダメコンを設定
         do {
@@ -274,7 +269,7 @@ class SecondFleetBattleTest: XCTestCase {
         // HPチェック
         do {
             let store = ServerDataStore.oneTimeEditor()
-            let ships = store.ships(byDeckId: deckId)
+            let ships = store.ships(byDeckId: fleet)
             
             XCTAssertEqual(ships.count, 6)
             
@@ -286,4 +281,37 @@ class SecondFleetBattleTest: XCTestCase {
             XCTAssertEqual(ships[5].nowhp, Int(Double(shipsHp[5]) * 0.2))
         }
     }
+    
+    func testFirstFleet() {
+        
+        initBattleFleet(1)
+        normalBattle(1)
+        initBattleFleet(1)
+        damageControl(1)
+        clear(1)
+    }
+    func testSecondFleet() {
+        
+        initBattleFleet(2)
+        normalBattle(2)
+        initBattleFleet(2)
+        damageControl(2)
+        clear(2)
+    }
+    func testThiredFleet() {
+        
+        initBattleFleet(3)
+        normalBattle(3)
+        initBattleFleet(3)
+        damageControl(3)
+        clear(3)
+    }
+    func testFourthFleet() {
+        
+        initBattleFleet(4)
+        normalBattle(4)
+        initBattleFleet(4)
+        damageControl(4)
+        clear(4)
+    }
 }