From a7e7deeb80a07eba2df420dc0319d19067c0e232 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sun, 29 Jul 2018 19:25:28 +0300 Subject: [PATCH] [Tests] Add a simple test for TarContainer.create --- SWCompression.xcodeproj/project.pbxproj | 4 +++ Tests/TarCreateTests.swift | 42 +++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 Tests/TarCreateTests.swift diff --git a/SWCompression.xcodeproj/project.pbxproj b/SWCompression.xcodeproj/project.pbxproj index 352d66fa..026eefa6 100644 --- a/SWCompression.xcodeproj/project.pbxproj +++ b/SWCompression.xcodeproj/project.pbxproj @@ -85,6 +85,7 @@ 06A960651F1E7DF60078E6D1 /* 7zCoderInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A960641F1E7DF60078E6D1 /* 7zCoderInfo.swift */; }; 06A9606A1F1E7E0D0078E6D1 /* 7zSubstreamInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A960691F1E7E0D0078E6D1 /* 7zSubstreamInfo.swift */; }; 06ADB2D91EBCEFA60053A188 /* TarContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06ADB2D81EBCEFA60053A188 /* TarContainer.swift */; }; + 06B15D9D210E17FC00AF2EA1 /* TarCreateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B15D9C210E17FC00AF2EA1 /* TarCreateTests.swift */; }; 06B689581F278815007C9316 /* 7zProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B689571F278815007C9316 /* 7zProperty.swift */; }; 06BAC5941F8CFF28002443F4 /* ZipEntryInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06BAC5931F8CFF28002443F4 /* ZipEntryInfo.swift */; }; 06BB8F301E0C2C720079FB9E /* LZMA2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06BB8F2F1E0C2C720079FB9E /* LZMA2.swift */; }; @@ -295,6 +296,7 @@ 06A960641F1E7DF60078E6D1 /* 7zCoderInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = 7zCoderInfo.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; 06A960691F1E7E0D0078E6D1 /* 7zSubstreamInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = 7zSubstreamInfo.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; 06ADB2D81EBCEFA60053A188 /* TarContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TarContainer.swift; sourceTree = ""; }; + 06B15D9C210E17FC00AF2EA1 /* TarCreateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TarCreateTests.swift; sourceTree = ""; }; 06B689571F278815007C9316 /* 7zProperty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = 7zProperty.swift; sourceTree = ""; }; 06BAC5931F8CFF28002443F4 /* ZipEntryInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZipEntryInfo.swift; sourceTree = ""; }; 06BB8F2F1E0C2C720079FB9E /* LZMA2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LZMA2.swift; sourceTree = ""; }; @@ -653,6 +655,7 @@ 06F065AA1FFB763300312A82 /* SevenZipTests.swift */, 069401AA20EFDD000044B696 /* TarGenerateContainerDataTests.swift */, 066C309A20E9379F000F320C /* TarExtendedHeaderTests.swift */, + 06B15D9C210E17FC00AF2EA1 /* TarCreateTests.swift */, 06F065A61FFB763300312A82 /* TarTests.swift */, 06F065A91FFB763300312A82 /* XzTests.swift */, 06F065A41FFB763300312A82 /* ZipTests.swift */, @@ -1153,6 +1156,7 @@ 06F066141FFB763300312A82 /* DeflateCompressionTests.swift in Sources */, 06F066171FFB763300312A82 /* BZip2Tests.swift in Sources */, 06F066181FFB763300312A82 /* TarTests.swift in Sources */, + 06B15D9D210E17FC00AF2EA1 /* TarCreateTests.swift in Sources */, 06F066191FFB763300312A82 /* GzipTests.swift in Sources */, 069401AB20EFDD000044B696 /* TarGenerateContainerDataTests.swift in Sources */, 06D42DA72067B71000C1A98B /* TestZipExtraField.swift in Sources */, diff --git a/Tests/TarCreateTests.swift b/Tests/TarCreateTests.swift new file mode 100644 index 00000000..1bf64ddb --- /dev/null +++ b/Tests/TarCreateTests.swift @@ -0,0 +1,42 @@ +// Copyright (c) 2018 Timofey Solomko +// Licensed under MIT License +// +// See LICENSE for license information + +import XCTest +import SWCompression + +class TarCreateTests: XCTestCase { + + func test() throws { + var info = TarEntryInfo(name: "file.txt", type: .regular) + info.ownerUserName = "timofeysolomko" + info.ownerGroupName = "staff" + info.ownerID = 501 + info.groupID = 20 + info.permissions = Permissions(rawValue: 420) + let date = Date() + info.modificationTime = date + info.creationTime = date + info.accessTime = date + info.comment = "comment" + + let data = "Hello, World!\n".data(using: .utf8)! + let entry = TarEntry(info: info, data: data) + let containerData = try TarContainer.create(from: [entry]) + let newEntries = try TarContainer.open(container: containerData) + + XCTAssertEqual(newEntries.count, 1) + XCTAssertEqual(newEntries[0].info.name, "file.txt") + XCTAssertEqual(newEntries[0].info.type, .regular) + XCTAssertEqual(newEntries[0].info.size, 14) + XCTAssertEqual(newEntries[0].info.ownerUserName, "timofeysolomko") + XCTAssertEqual(newEntries[0].info.ownerGroupName, "staff") + XCTAssertEqual(newEntries[0].info.ownerID, 501) + XCTAssertEqual(newEntries[0].info.groupID, 20) + XCTAssertEqual(newEntries[0].info.permissions, Permissions(rawValue: 420)) + XCTAssertEqual(newEntries[0].info.comment, "comment") + XCTAssertEqual(newEntries[0].data, data) + } + +}