Fix tests

This commit is contained in:
Pedro Piñera 2018-07-26 14:12:35 -04:00
parent 57a47ae559
commit 87e19af3ab
6 changed files with 36 additions and 40 deletions

View File

@ -3,7 +3,9 @@ import Foundation
func dumpIfNeeded<E: Encodable>(_ entity: E) {
if CommandLine.argc > 0 {
if CommandLine.arguments.contains("--dump") {
let data = try! JSONEncoder().encode(entity)
let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToSnakeCase
let data = try! encoder.encode(entity)
let string = String(data: data, encoding: .utf8)!
print(string)
}

View File

@ -18,5 +18,4 @@ public class Headers: Codable {
self.private = `private`
self.project = project
}
}

View File

@ -3,7 +3,6 @@ import Foundation
// MARK: - TargetDependency
public enum TargetDependency: Codable {
case target(name: String)
case project(target: String, path: String)
case framework(path: String)
@ -21,13 +20,11 @@ public enum TargetDependency: Codable {
return "library"
}
}
}
// MARK: - TargetDependency (Coding)
extension TargetDependency {
public enum CodingError: Error {
case unknownType(String)
}
@ -74,21 +71,20 @@ extension TargetDependency {
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.typeName, forKey: .type)
try container.encode(typeName, forKey: .type)
switch self {
case .target(name: let name):
case let .target(name: name):
try container.encode(name, forKey: .name)
case .project(target: let target, path: let path):
case let .project(target: target, path: path):
try container.encode(target, forKey: .target)
try container.encode(path, forKey: .path)
case .framework(path: let path):
case let .framework(path: path):
try container.encode(path, forKey: .path)
case .library(path: let path, publicHeaders: let publicHeaders, swiftModuleMap: let swiftModuleMap):
case let .library(path: path, publicHeaders: publicHeaders, swiftModuleMap: swiftModuleMap):
try container.encode(path, forKey: .path)
try container.encode(publicHeaders, forKey: .publicHeaders)
try container.encodeIfPresent(swiftModuleMap, forKey: .swiftModuleMap)
}
}
}

View File

@ -3,7 +3,6 @@ import Foundation
// MARK: - Workspace
public class Workspace: Codable {
enum CodingKeys: String, CodingKey {
case name
case projects = "project"

View File

@ -5,19 +5,19 @@ import XCTest
final class ProductTests: XCTestCase {
func test_toJSON() {
assertCodableEqualToJson([Product.app], "[\"app\"]")
assertCodableEqualToJson([Product.staticLibrary],"[\"staticLibrary\"]")
assertCodableEqualToJson([Product.dynamicLibrary],"[\"dynamicLibrary\"]")
assertCodableEqualToJson([Product.framework],"[\"framework\"]")
assertCodableEqualToJson([Product.unitTests],"[\"unitTests\"]")
assertCodableEqualToJson([Product.uiTests],"[\"uiTests\"]")
assertCodableEqualToJson([Product.appExtension],"[\"appExtension\"]")
assertCodableEqualToJson([Product.watchApp],"[\"watchApp\"]")
assertCodableEqualToJson([Product.watch2App],"[\"watch2App\"]")
assertCodableEqualToJson([Product.watchExtension],"[\"watchExtension\"]")
assertCodableEqualToJson([Product.watch2Extension],"[\"watch2Extension\"]")
assertCodableEqualToJson([Product.tvExtension],"[\"tvExtension\"]")
assertCodableEqualToJson([Product.messagesApplication],"[\"messagesApplication\"]")
assertCodableEqualToJson([Product.messagesExtension],"[\"messagesExtension\"]")
assertCodableEqualToJson([Product.stickerPack],"[\"stickerPack\"]")
assertCodableEqualToJson([Product.staticLibrary], "[\"staticLibrary\"]")
assertCodableEqualToJson([Product.dynamicLibrary], "[\"dynamicLibrary\"]")
assertCodableEqualToJson([Product.framework], "[\"framework\"]")
assertCodableEqualToJson([Product.unitTests], "[\"unitTests\"]")
assertCodableEqualToJson([Product.uiTests], "[\"uiTests\"]")
assertCodableEqualToJson([Product.appExtension], "[\"appExtension\"]")
assertCodableEqualToJson([Product.watchApp], "[\"watchApp\"]")
assertCodableEqualToJson([Product.watch2App], "[\"watch2App\"]")
assertCodableEqualToJson([Product.watchExtension], "[\"watchExtension\"]")
assertCodableEqualToJson([Product.watch2Extension], "[\"watch2Extension\"]")
assertCodableEqualToJson([Product.tvExtension], "[\"tvExtension\"]")
assertCodableEqualToJson([Product.messagesApplication], "[\"messagesApplication\"]")
assertCodableEqualToJson([Product.messagesExtension], "[\"messagesExtension\"]")
assertCodableEqualToJson([Product.stickerPack], "[\"stickerPack\"]")
}
}