diff --git a/Frameworks/Feed/Test/Tests/ReviewsFeedTests.swift b/Frameworks/Feed/Test/Tests/ReviewsFeedTests.swift new file mode 100644 index 0000000..a4cfd21 --- /dev/null +++ b/Frameworks/Feed/Test/Tests/ReviewsFeedTests.swift @@ -0,0 +1,36 @@ +// +// ReviewsFeedTests.swift +// ReviewsFeedTests +// +// Created by Javier Cicchelli on 22/03/2024. +// Copyright © 2024 Röck+Cöde. All rights reserved. +// + +import XCTest + +final class ReviewsFeedTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/Reviews.xcodeproj/project.pbxproj b/Reviews.xcodeproj/project.pbxproj index 0a47e76..cfa396e 100644 --- a/Reviews.xcodeproj/project.pbxproj +++ b/Reviews.xcodeproj/project.pbxproj @@ -18,6 +18,8 @@ 02909E792BAB6B0200710E14 /* FilterOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E782BAB6B0200710E14 /* FilterOption.swift */; }; 02909E7B2BAB6D2E00710E14 /* Bundle+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */; }; 02909E7D2BAB7FFE00710E14 /* Review+DTOs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E7C2BAB7FFE00710E14 /* Review+DTOs.swift */; }; + 02B36F7C2BAD9D1A00F1A89D /* ReviewsFeedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B36F7B2BAD9D1A00F1A89D /* ReviewsFeedTests.swift */; }; + 02B36F7D2BAD9D1A00F1A89D /* ReviewsFeed.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02DC7F8F2BA51793000EEEBE /* ReviewsFeed.framework */; platformFilter = ios; }; 02C1B1972BAC9BFE001781DE /* FeedListCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C1B1962BAC9BFE001781DE /* FeedListCoordinator.swift */; }; 02C1B1A92BACA722001781DE /* AppCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C1B1A82BACA722001781DE /* AppCoordinator.swift */; }; 02DA924E2BAAE3FD00C47985 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 02DA924D2BAAE3FD00C47985 /* Localizable.xcstrings */; }; @@ -40,6 +42,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 02B36F7E2BAD9D1A00F1A89D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 345AD11024C6EDD9004E2EE1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 02DC7F8E2BA51793000EEEBE; + remoteInfo = Feed; + }; 02DC7FA02BA51793000EEEBE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 345AD11024C6EDD9004E2EE1 /* Project object */; @@ -75,6 +84,8 @@ 02909E782BAB6B0200710E14 /* FilterOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterOption.swift; sourceTree = ""; }; 02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Constants.swift"; sourceTree = ""; }; 02909E7C2BAB7FFE00710E14 /* Review+DTOs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Review+DTOs.swift"; sourceTree = ""; }; + 02B36F792BAD9D1A00F1A89D /* FeedTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FeedTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 02B36F7B2BAD9D1A00F1A89D /* ReviewsFeedTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewsFeedTests.swift; sourceTree = ""; }; 02C1B1962BAC9BFE001781DE /* FeedListCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListCoordinator.swift; sourceTree = ""; }; 02C1B1A82BACA722001781DE /* AppCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinator.swift; sourceTree = ""; }; 02DA924D2BAAE3FD00C47985 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; @@ -97,6 +108,14 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 02B36F762BAD9D1A00F1A89D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 02B36F7D2BAD9D1A00F1A89D /* ReviewsFeed.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 02DC7F8C2BA51793000EEEBE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -224,10 +243,19 @@ 02A6DA302BA5929F00B943E2 /* Test */ = { isa = PBXGroup; children = ( + 02B36F742BAD9C4500F1A89D /* Tests */, ); path = Test; sourceTree = ""; }; + 02B36F742BAD9C4500F1A89D /* Tests */ = { + isa = PBXGroup; + children = ( + 02B36F7B2BAD9D1A00F1A89D /* ReviewsFeedTests.swift */, + ); + path = Tests; + sourceTree = ""; + }; 02C1B1952BAC9BE7001781DE /* Coordinators */ = { isa = PBXGroup; children = ( @@ -364,6 +392,7 @@ children = ( 345AD11824C6EDD9004E2EE1 /* Reviews.app */, 02DC7F8F2BA51793000EEEBE /* ReviewsFeed.framework */, + 02B36F792BAD9D1A00F1A89D /* FeedTests.xctest */, ); name = Products; sourceTree = ""; @@ -391,6 +420,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 02B36F782BAD9D1A00F1A89D /* FeedTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 02B36F802BAD9D1A00F1A89D /* Build configuration list for PBXNativeTarget "FeedTests" */; + buildPhases = ( + 02B36F752BAD9D1A00F1A89D /* Sources */, + 02B36F762BAD9D1A00F1A89D /* Frameworks */, + 02B36F772BAD9D1A00F1A89D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 02B36F7F2BAD9D1A00F1A89D /* PBXTargetDependency */, + ); + name = FeedTests; + productName = ReviewsFeedTests; + productReference = 02B36F792BAD9D1A00F1A89D /* FeedTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; 02DC7F8E2BA51793000EEEBE /* Feed */ = { isa = PBXNativeTarget; buildConfigurationList = 02DC7FA92BA51793000EEEBE /* Build configuration list for PBXNativeTarget "Feed" */; @@ -445,6 +492,9 @@ LastUpgradeCheck = 1530; ORGANIZATIONNAME = "Röck+Cöde"; TargetAttributes = { + 02B36F782BAD9D1A00F1A89D = { + CreatedOnToolsVersion = 15.3; + }; 02DC7F8E2BA51793000EEEBE = { CreatedOnToolsVersion = 15.3; }; @@ -466,13 +516,21 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 02DC7F8E2BA51793000EEEBE /* Feed */, 345AD11724C6EDD9004E2EE1 /* App */, + 02DC7F8E2BA51793000EEEBE /* Feed */, + 02B36F782BAD9D1A00F1A89D /* FeedTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 02B36F772BAD9D1A00F1A89D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 02DC7F8D2BA51793000EEEBE /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -493,6 +551,14 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 02B36F752BAD9D1A00F1A89D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 02B36F7C2BAD9D1A00F1A89D /* ReviewsFeedTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 02DC7F8B2BA51793000EEEBE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -532,6 +598,12 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 02B36F7F2BAD9D1A00F1A89D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + platformFilter = ios; + target = 02DC7F8E2BA51793000EEEBE /* Feed */; + targetProxy = 02B36F7E2BAD9D1A00F1A89D /* PBXContainerItemProxy */; + }; 02DC7FA12BA51793000EEEBE /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 02DC7F8E2BA51793000EEEBE /* Feed */; @@ -551,6 +623,59 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 02B36F812BAD9D1A00F1A89D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 7FMNM89WKG; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.assignment.ing.framework.feed.test.unit"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + 02B36F822BAD9D1A00F1A89D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 7FMNM89WKG; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.assignment.ing.framework.feed.test.unit"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; 02DC7FA52BA51793000EEEBE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -825,6 +950,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 02B36F802BAD9D1A00F1A89D /* Build configuration list for PBXNativeTarget "FeedTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 02B36F812BAD9D1A00F1A89D /* Debug */, + 02B36F822BAD9D1A00F1A89D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 02DC7FA92BA51793000EEEBE /* Build configuration list for PBXNativeTarget "Feed" */ = { isa = XCConfigurationList; buildConfigurations = (