From 8b2ea247f7d38ba42582688f368f9d7c137e2864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Jose=CC=81=20Pereira=20Vieito?= Date: Mon, 10 Dec 2018 22:33:12 +0100 Subject: [PATCH] Added UUID tests --- TestFoundation/TestUUID.swift | 55 +++++++++++++++++++++++++++++++++++ TestFoundation/main.swift | 1 + 2 files changed, 56 insertions(+) create mode 100644 TestFoundation/TestUUID.swift diff --git a/TestFoundation/TestUUID.swift b/TestFoundation/TestUUID.swift new file mode 100644 index 0000000000..5b7cd2f1e7 --- /dev/null +++ b/TestFoundation/TestUUID.swift @@ -0,0 +1,55 @@ +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See http://swift.org/LICENSE.txt for license information +// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +// + +class TestUUID : XCTestCase { + + static var allTests: [(String, (TestUUID) -> () throws -> Void)] { + return [ + ("test_UUIDEquality", test_UUIDEquality), + ("test_UUIDInvalid", test_UUIDInvalid), + ("test_UUIDuuidString", test_UUIDuuidString), + ("test_UUIDdescription", test_UUIDdescription), + ("test_UUIDNSCoding", test_UUIDNSCoding), + ] + } + + func test_UUIDEquality() { + let uuidA = UUID(uuidString: "E621E1F8-C36C-495A-93FC-0C247A3E6E5F") + let uuidB = UUID(uuidString: "e621e1f8-c36c-495a-93fc-0c247a3e6e5f") + let uuidC = UUID(uuid: (0xe6,0x21,0xe1,0xf8,0xc3,0x6c,0x49,0x5a,0x93,0xfc,0x0c,0x24,0x7a,0x3e,0x6e,0x5f)) + let uuidD = UUID() + + XCTAssertEqual(uuidA, uuidB, "String case must not matter.") + XCTAssertEqual(uuidA, uuidC, "A UUID initialized with a string must be equal to the same UUID initialized with its UnsafePointer equivalent representation.") + XCTAssertNotEqual(uuidC, uuidD, "Two different UUIDs must not be equal.") + } + + func test_UUIDInvalid() { + let uuid = UUID(uuidString: "Invalid UUID") + XCTAssertNil(uuid, "The convenience initializer `init?(uuidString string:)` must return nil for an invalid UUID string.") + } + + // `uuidString` should return an uppercase string + // See: https://bugs.swift.org/browse/SR-865 + func test_UUIDuuidString() { + let uuid = UUID(uuid: (0xe6,0x21,0xe1,0xf8,0xc3,0x6c,0x49,0x5a,0x93,0xfc,0x0c,0x24,0x7a,0x3e,0x6e,0x5f)) + XCTAssertEqual(uuid.uuidString, "E621E1F8-C36C-495A-93FC-0C247A3E6E5F", "The uuidString representation must be uppercase.") + } + + func test_UUIDdescription() { + let uuid = UUID() + XCTAssertEqual(uuid.description, uuid.uuidString, "The description must be the same as the uuidString.") + } + + func test_UUIDNSCoding() { + let uuidA = UUID() + let uuidB = NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: uuidA)) as! UUID + XCTAssertEqual(uuidA, uuidB, "Archived then unarchived uuid must be equal.") + } +} diff --git a/TestFoundation/main.swift b/TestFoundation/main.swift index ca4f6c866c..e5b2c6fa82 100644 --- a/TestFoundation/main.swift +++ b/TestFoundation/main.swift @@ -88,6 +88,7 @@ XCTMain([ testCase(TestURLSession.allTests), testCase(TestNSNull.allTests), testCase(TestNSUUID.allTests), + testCase(TestUUID.allTests), testCase(TestNSValue.allTests), testCase(TestUserDefaults.allTests), testCase(TestXMLParser.allTests),