From c5e4f699121d2f3f18fa962fd0f8d7891c0e509c Mon Sep 17 00:00:00 2001 From: youn9k Date: Thu, 6 Jun 2024 11:59:44 +0900 Subject: [PATCH 1/5] =?UTF-8?q?:art:=20::=20=EC=84=A4=EC=A0=95=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20stub=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyInfoFeature/Interface/Interface.swift | 8 +++++ Projects/Features/MyInfoFeature/Project.swift | 1 + .../Components/AppPushSettingComponent.swift | 4 +-- .../OpenSourceLicenseComponent.swift | 14 +++----- .../Setting/SettingViewController.swift | 32 +++++++++---------- .../Testing/AppPushSettingComponentStub.swift | 12 +++++++ .../OpenSourceLicenseComponentStub.swift | 12 +++++++ .../Testing/SettingComponentStub.swift | 29 +++++++++++++++++ .../MyInfoFeature/Testing/testing.swift | 1 + 9 files changed, 85 insertions(+), 28 deletions(-) create mode 100644 Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift create mode 100644 Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift create mode 100644 Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift create mode 100644 Projects/Features/MyInfoFeature/Testing/testing.swift diff --git a/Projects/Features/MyInfoFeature/Interface/Interface.swift b/Projects/Features/MyInfoFeature/Interface/Interface.swift index 407dc0343..49cbef165 100644 --- a/Projects/Features/MyInfoFeature/Interface/Interface.swift +++ b/Projects/Features/MyInfoFeature/Interface/Interface.swift @@ -7,3 +7,11 @@ public protocol MyInfoFactory { public protocol SettingFactory { func makeView() -> UIViewController } + +public protocol AppPushSettingFactory { + func makeView() -> UIViewController +} + +public protocol OpenSourceLicenseFactory { + func makeView() -> UIViewController +} diff --git a/Projects/Features/MyInfoFeature/Project.swift b/Projects/Features/MyInfoFeature/Project.swift index 96c12eb61..83c67f1b3 100644 --- a/Projects/Features/MyInfoFeature/Project.swift +++ b/Projects/Features/MyInfoFeature/Project.swift @@ -23,6 +23,7 @@ let project = Project.module( ) ), .testing(module: .feature(.MyInfoFeature), dependencies: [ + .feature(target: .MyInfoFeature), .feature(target: .MyInfoFeature, type: .interface), .feature(target: .BaseFeature, type: .testing), .feature(target: .SignInFeature, type: .testing) diff --git a/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift b/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift index e77a7359f..8c598023b 100644 --- a/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift +++ b/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift @@ -1,11 +1,11 @@ -import BaseFeatureInterface +//import BaseFeatureInterface import MyInfoFeatureInterface import NeedleFoundation import UIKit public protocol AppPushSettingDependency: Dependency {} -public final class AppPushSettingComponent: Component { +public final class AppPushSettingComponent: Component, AppPushSettingFactory { public func makeView() -> UIViewController { return AppPushSettingViewController.viewController( reactor: AppPushSettingReactor() diff --git a/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift b/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift index 686f41214..f0955422b 100644 --- a/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift +++ b/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift @@ -1,18 +1,12 @@ -// -// OpenSourceLicenseComponent.swift -// CommonFeature -// -// Created by KTH on 2023/05/17. -// Copyright © 2023 yongbeomkwak. All rights reserved. -// - import Foundation +import UIKit import NeedleFoundation +import MyInfoFeatureInterface public protocol OpenSourceLicenseDependency: Dependency {} -public final class OpenSourceLicenseComponent: Component { - public func makeView() -> OpenSourceLicenseViewController { +public final class OpenSourceLicenseComponent: Component, OpenSourceLicenseFactory { + public func makeView() -> UIViewController { return OpenSourceLicenseViewController.viewController( viewModel: OpenSourceLicenseViewModel() ) diff --git a/Projects/Features/MyInfoFeature/Sources/ViewControllers/Setting/SettingViewController.swift b/Projects/Features/MyInfoFeature/Sources/ViewControllers/Setting/SettingViewController.swift index c4e7f76ee..69bc86b20 100644 --- a/Projects/Features/MyInfoFeature/Sources/ViewControllers/Setting/SettingViewController.swift +++ b/Projects/Features/MyInfoFeature/Sources/ViewControllers/Setting/SettingViewController.swift @@ -14,10 +14,10 @@ import Utility final class SettingViewController: BaseReactorViewController { private var textPopUpFactory: TextPopUpFactory! private var signInFactory: SignInFactory! - private var appPushSettingComponent: AppPushSettingComponent! - private var serviceTermsComponent: ServiceTermsComponent! - private var privacyComponent: PrivacyComponent! - private var openSourceLicenseComponent: OpenSourceLicenseComponent! + private var appPushSettingFactory: AppPushSettingFactory! + private var serviceTermsFactory: ServiceTermFactory! + private var privacyFactory: PrivacyFactory! + private var openSourceLicenseFactory: OpenSourceLicenseFactory! let settingView = SettingView() @@ -29,18 +29,18 @@ final class SettingViewController: BaseReactorViewController { reactor: SettingReactor, textPopUpFactory: TextPopUpFactory, signInFactory: SignInFactory, - appPushSettingComponent: AppPushSettingComponent, - serviceTermsComponent: ServiceTermsComponent, - privacyComponent: PrivacyComponent, - openSourceLicenseComponent: OpenSourceLicenseComponent + appPushSettingFactory: AppPushSettingFactory, + serviceTermsFactory: ServiceTermFactory, + privacyFactory: PrivacyFactory, + openSourceLicenseFactory: OpenSourceLicenseFactory ) -> SettingViewController { let viewController = SettingViewController(reactor: reactor) viewController.textPopUpFactory = textPopUpFactory viewController.signInFactory = signInFactory - viewController.appPushSettingComponent = appPushSettingComponent - viewController.serviceTermsComponent = serviceTermsComponent - viewController.privacyComponent = privacyComponent - viewController.openSourceLicenseComponent = openSourceLicenseComponent + viewController.appPushSettingFactory = appPushSettingFactory + viewController.serviceTermsFactory = serviceTermsFactory + viewController.privacyFactory = privacyFactory + viewController.openSourceLicenseFactory = openSourceLicenseFactory return viewController } @@ -52,18 +52,18 @@ final class SettingViewController: BaseReactorViewController { case .dismiss: owner.navigationController?.popViewController(animated: true) case .appPushSetting: - let vc = owner.appPushSettingComponent.makeView() + let vc = owner.appPushSettingFactory.makeView() owner.navigationController?.pushViewController(vc, animated: true) case .serviceTerms: - let vc = owner.serviceTermsComponent.makeView() + let vc = owner.serviceTermsFactory.makeView() vc.modalPresentationStyle = .overFullScreen owner.present(vc, animated: true) case .privacy: - let vc = owner.privacyComponent.makeView() + let vc = owner.privacyFactory.makeView() vc.modalPresentationStyle = .overFullScreen owner.present(vc, animated: true) case .openSource: - let vc = owner.openSourceLicenseComponent.makeView() + let vc = owner.openSourceLicenseFactory.makeView() owner.navigationController?.pushViewController(vc, animated: true) } } diff --git a/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift new file mode 100644 index 000000000..92f1370c3 --- /dev/null +++ b/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift @@ -0,0 +1,12 @@ +//import BaseFeatureInterface +import MyInfoFeature +import MyInfoFeatureInterface +import UIKit + +public final class AppPushSettingComponentStub: AppPushSettingFactory { + public func makeView() -> UIViewController { + return AppPushSettingViewController.viewController( + reactor: AppPushSettingReactor() + ) + } +} diff --git a/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift new file mode 100644 index 000000000..06859a3d0 --- /dev/null +++ b/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift @@ -0,0 +1,12 @@ +import Foundation +import UIKit +import MyInfoFeature +import MyInfoFeatureInterface + +public final class OpenSourceLicenseComponentStub: OpenSourceLicenseFactory { + public func makeView() -> UIViewController { + return OpenSourceLicenseViewController.viewController( + viewModel: OpenSourceLicenseViewModel() + ) + } +} diff --git a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift new file mode 100644 index 000000000..5fa6839a4 --- /dev/null +++ b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift @@ -0,0 +1,29 @@ +import AuthDomainInterface +import AuthDomainTesting +//import BaseFeature +import BaseFeatureTesting +import BaseFeatureInterface +import MyInfoFeatureInterface +import MyInfoFeature +import SignInFeatureInterface +import SignInFeatureTesting +import UIKit +import UserDomainInterface +import UserDomainTesting + +public final class SettingComponentStub: SettingFactory { + public func makeView() -> UIViewController { + return SettingViewController.viewController( + reactor: SettingReactor( + withDrawUserInfoUseCase: WithdrawUserInfoUseCaseSpy(), + logoutUseCase: LogoutUseCaseSpy() + ), + textPopUpFactory: TextPopUpComponentStub(), + signInFactory: SignInComponentStub(), + appPushSettingFactory: AppPushSettingComponentStub(), + serviceTermsFactory: ServiceTermsComponentStub(), + privacyFactory: PrivacyComponentStub(), + ppenSourceLicenseFactory: OpenSourceLicenseComponentStub() + ) + } +} diff --git a/Projects/Features/MyInfoFeature/Testing/testing.swift b/Projects/Features/MyInfoFeature/Testing/testing.swift new file mode 100644 index 000000000..dae5e363f --- /dev/null +++ b/Projects/Features/MyInfoFeature/Testing/testing.swift @@ -0,0 +1 @@ +// for tuist From a9416492f767c6e5aa369193c2036daafc5be7b3 Mon Sep 17 00:00:00 2001 From: youn9k Date: Thu, 6 Jun 2024 12:20:04 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=8E=A8=20::=20=08=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20Formatting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Components/AppPushSettingComponent.swift | 2 +- .../Sources/Components/OpenSourceLicenseComponent.swift | 4 ++-- .../Testing/AppPushSettingComponentStub.swift | 2 +- .../Testing/OpenSourceLicenseComponentStub.swift | 2 +- .../MyInfoFeature/Testing/SettingComponentStub.swift | 7 ++++--- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift b/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift index 8c598023b..718b30fca 100644 --- a/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift +++ b/Projects/Features/MyInfoFeature/Sources/Components/AppPushSettingComponent.swift @@ -1,4 +1,4 @@ -//import BaseFeatureInterface +// import BaseFeatureInterface import MyInfoFeatureInterface import NeedleFoundation import UIKit diff --git a/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift b/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift index f0955422b..6f4f5242e 100644 --- a/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift +++ b/Projects/Features/MyInfoFeature/Sources/Components/OpenSourceLicenseComponent.swift @@ -1,7 +1,7 @@ import Foundation -import UIKit -import NeedleFoundation import MyInfoFeatureInterface +import NeedleFoundation +import UIKit public protocol OpenSourceLicenseDependency: Dependency {} diff --git a/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift index 92f1370c3..65686914b 100644 --- a/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift @@ -1,4 +1,4 @@ -//import BaseFeatureInterface +// import BaseFeatureInterface import MyInfoFeature import MyInfoFeatureInterface import UIKit diff --git a/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift index 06859a3d0..37783653d 100644 --- a/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift @@ -1,7 +1,7 @@ import Foundation -import UIKit import MyInfoFeature import MyInfoFeatureInterface +import UIKit public final class OpenSourceLicenseComponentStub: OpenSourceLicenseFactory { public func makeView() -> UIViewController { diff --git a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift index 5fa6839a4..a5fda3ba5 100644 --- a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift @@ -1,10 +1,11 @@ import AuthDomainInterface import AuthDomainTesting -//import BaseFeature -import BaseFeatureTesting import BaseFeatureInterface -import MyInfoFeatureInterface + +// import BaseFeature +import BaseFeatureTesting import MyInfoFeature +import MyInfoFeatureInterface import SignInFeatureInterface import SignInFeatureTesting import UIKit From 79a144ca9abe0f5165804885cbb373e5e41895e0 Mon Sep 17 00:00:00 2001 From: youn9k Date: Thu, 6 Jun 2024 19:53:13 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=8E=A8=20::=20Testing=20->=20Feature?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84=EC=B2=B4=20=EB=AA=A8=EB=93=88=20=EC=9D=98?= =?UTF-8?q?=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Components/SettingComponent.swift | 8 ++++---- .../Testing/AppPushSettingComponentStub.swift | 3 +-- .../Testing/OpenSourceLicenseComponentStub.swift | 2 +- .../MyInfoFeature/Testing/SettingComponentStub.swift | 12 +++++------- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Projects/Features/MyInfoFeature/Sources/Components/SettingComponent.swift b/Projects/Features/MyInfoFeature/Sources/Components/SettingComponent.swift index a5eb10dc2..487c57659 100644 --- a/Projects/Features/MyInfoFeature/Sources/Components/SettingComponent.swift +++ b/Projects/Features/MyInfoFeature/Sources/Components/SettingComponent.swift @@ -27,10 +27,10 @@ public final class SettingComponent: Component, SettingFactor ), textPopUpFactory: dependency.textPopUpFactory, signInFactory: dependency.signInFactory, - appPushSettingComponent: dependency.appPushSettingComponent, - serviceTermsComponent: dependency.serviceTermsComponent, - privacyComponent: dependency.privacyComponent, - openSourceLicenseComponent: dependency.openSourceLicenseComponent + appPushSettingFactory: dependency.appPushSettingComponent, + serviceTermsFactory: dependency.serviceTermsComponent, + privacyFactory: dependency.privacyComponent, + openSourceLicenseFactory: dependency.openSourceLicenseComponent ) } } diff --git a/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift index 65686914b..393d00c7d 100644 --- a/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/AppPushSettingComponentStub.swift @@ -1,5 +1,4 @@ -// import BaseFeatureInterface -import MyInfoFeature +@testable import MyInfoFeature import MyInfoFeatureInterface import UIKit diff --git a/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift index 37783653d..6f9d484b9 100644 --- a/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/OpenSourceLicenseComponentStub.swift @@ -1,5 +1,5 @@ import Foundation -import MyInfoFeature +@testable import MyInfoFeature import MyInfoFeatureInterface import UIKit diff --git a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift index a5fda3ba5..4203c1053 100644 --- a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift @@ -1,16 +1,14 @@ import AuthDomainInterface import AuthDomainTesting import BaseFeatureInterface - -// import BaseFeature -import BaseFeatureTesting -import MyInfoFeature import MyInfoFeatureInterface import SignInFeatureInterface -import SignInFeatureTesting import UIKit import UserDomainInterface import UserDomainTesting +@testable import MyInfoFeature +@testable import BaseFeatureTesting +@testable import SignInFeatureTesting public final class SettingComponentStub: SettingFactory { public func makeView() -> UIViewController { @@ -22,9 +20,9 @@ public final class SettingComponentStub: SettingFactory { textPopUpFactory: TextPopUpComponentStub(), signInFactory: SignInComponentStub(), appPushSettingFactory: AppPushSettingComponentStub(), - serviceTermsFactory: ServiceTermsComponentStub(), + serviceTermsFactory: ServiceTermComponentStub(), privacyFactory: PrivacyComponentStub(), - ppenSourceLicenseFactory: OpenSourceLicenseComponentStub() + openSourceLicenseFactory: OpenSourceLicenseComponentStub() ) } } From 2a0a82534c045f6b1e198a176c130abf1e997fe3 Mon Sep 17 00:00:00 2001 From: youn9k Date: Thu, 6 Jun 2024 19:53:28 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=F0=9F=8E=A8=20::=20=EC=BD=94=EB=93=9C=20Fo?= =?UTF-8?q?rmatting=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyInfoFeature/Testing/SettingComponentStub.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift index 4203c1053..6a9313aa1 100644 --- a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift @@ -1,14 +1,14 @@ import AuthDomainInterface import AuthDomainTesting import BaseFeatureInterface +@testable import BaseFeatureTesting +@testable import MyInfoFeature import MyInfoFeatureInterface import SignInFeatureInterface +@testable import SignInFeatureTesting import UIKit import UserDomainInterface import UserDomainTesting -@testable import MyInfoFeature -@testable import BaseFeatureTesting -@testable import SignInFeatureTesting public final class SettingComponentStub: SettingFactory { public func makeView() -> UIViewController { From 43cb97aca0403646f80a3e37fca8c21e78f7d7cf Mon Sep 17 00:00:00 2001 From: youn9k Date: Thu, 6 Jun 2024 20:16:03 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=F0=9F=8E=A8=20::=20usecase=20spy=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Features/MyInfoFeature/Testing/SettingComponentStub.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift index 6a9313aa1..df4449cbd 100644 --- a/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift +++ b/Projects/Features/MyInfoFeature/Testing/SettingComponentStub.swift @@ -1,5 +1,5 @@ import AuthDomainInterface -import AuthDomainTesting +@testable import AuthDomainTesting import BaseFeatureInterface @testable import BaseFeatureTesting @testable import MyInfoFeature @@ -8,7 +8,7 @@ import SignInFeatureInterface @testable import SignInFeatureTesting import UIKit import UserDomainInterface -import UserDomainTesting +@testable import UserDomainTesting public final class SettingComponentStub: SettingFactory { public func makeView() -> UIViewController {