From f5f65e0b2ee57d800a3961f941f72f333165963e Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sat, 6 May 2023 23:53:51 +0200 Subject: [PATCH] Implemented the "isNotEmpty" property in the Collection+Empty extension. --- .../Core/Extensions/Collection+Empty.swift | 20 +++++ .../Extensions/Collection+EmptyTests.swift | 75 +++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 Sources/Core/Extensions/Collection+Empty.swift create mode 100644 Tests/Core/Cases/Extensions/Collection+EmptyTests.swift diff --git a/Sources/Core/Extensions/Collection+Empty.swift b/Sources/Core/Extensions/Collection+Empty.swift new file mode 100644 index 0000000..0ec828b --- /dev/null +++ b/Sources/Core/Extensions/Collection+Empty.swift @@ -0,0 +1,20 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the SwiftLibs open source project +// +// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors +// Licensed under the EUPL 1.2 or later. +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of SwiftLibs project authors +// +//===----------------------------------------------------------------------===// + +public extension Collection { + + // MARK: Properties + + /// A Boolean value indicating whether a collection is not empty. + var isNotEmpty: Bool { !isEmpty } + +} diff --git a/Tests/Core/Cases/Extensions/Collection+EmptyTests.swift b/Tests/Core/Cases/Extensions/Collection+EmptyTests.swift new file mode 100644 index 0000000..feb518c --- /dev/null +++ b/Tests/Core/Cases/Extensions/Collection+EmptyTests.swift @@ -0,0 +1,75 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the SwiftLibs open source project +// +// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors +// Licensed under the EUPL 1.2 or later. +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of SwiftLibs project authors +// +//===----------------------------------------------------------------------===// + +import Core +import XCTest + +final class Collection_EmptyTests: XCTestCase { + + // MARK: Properties + + private var collection: (any Collection)! + private var result: Bool! + + // MARK: Tests + + func test_isNotEmpty_whenAnArrayIsEmpty() { + // GIVEN + collection = [Int]() + + // WHEN + result = collection.isNotEmpty + + // THEN + XCTAssertFalse(result) + } + + func test_isNotEmpty_whenAnArrayIsNotEmpty() { + // GIVEN + collection = [0, 1, 2, 3, 4, 5] + + // WHEN + result = collection.isNotEmpty + + // THEN + XCTAssertTrue(result) + } + + func test_isNotEmpty_whenADictionaryIsEmpty() { + // GIVEN + collection = [String: Int]() + + // WHEN + result = collection.isNotEmpty + + // THEN + XCTAssertFalse(result) + } + + func test_isNotEmpty_whenADictionaryIsNotEmpty() { + // GIVEN + collection = [ + "something": 0, + "else": 1, + "goes": 2, + "in": 3, + "here": 4 + ] + + // WHEN + result = collection.isNotEmpty + + // THEN + XCTAssertTrue(result) + } + +}