diff --git a/Sources/Protocols.swift b/Sources/Protocols.swift index 4f581b5c..e9133b8e 100644 --- a/Sources/Protocols.swift +++ b/Sources/Protocols.swift @@ -32,7 +32,9 @@ public protocol Container { public protocol ContainerEntry { - var name: String? { get } + var name: String { get } + var size: Int { get } + var isDirectory: Bool { get } func data() throws -> Data diff --git a/Sources/TarContainer.swift b/Sources/TarContainer.swift index a5d167a3..4eac3a42 100644 --- a/Sources/TarContainer.swift +++ b/Sources/TarContainer.swift @@ -25,10 +25,14 @@ public enum TarError: Error { public class TarEntry: ContainerEntry { /// Name of the file or directory. - public var name: String? { + public var name: String { return (self.fileNamePrefix ?? "") + (self.fileName ?? "") } + public var isDirectory: Bool { + return false // TODO: Implement. + } + public let mode: Int? public let ownerID: Int? public let groupID: Int? diff --git a/Tests/TarTests.swift b/Tests/TarTests.swift index f0db4448..907842c5 100644 --- a/Tests/TarTests.swift +++ b/Tests/TarTests.swift @@ -27,13 +27,11 @@ class TarTests: XCTestCase { return } - guard let entry = result[0] as? TarEntry else { - XCTFail("Unable to convert to TarEntry.") - return - } - - XCTAssertEqual(entry.name, "test5.answer") - XCTAssertEqual(entry.data(), Data()) + XCTAssertEqual(result.count, 1) + XCTAssertEqual(result[0].name, "test5.answer") + XCTAssertEqual(result[0].size, 0) + XCTAssertEqual(result[0].isDirectory, false) + XCTAssertEqual(try? result[0].data(), Data()) } }