@@ -11,33 +11,34 @@ class StoresManagerTests: XCTestCase {
1111
1212 override func setUp( ) {
1313 super. setUp ( )
14- initializeTestingSession ( ) . reset ( )
14+ var session = SessionManager . testingInstance
15+ session. reset ( )
1516 }
1617
1718
1819 /// Verifies that the Initial State is Deauthenticated, whenever there are no Default Credentials.
1920 ///
2021 func testInitialStateIsDeauthenticatedAssumingCredentialsWereMissing( ) {
21- let manager = initializeTestingStoresManager ( )
22+ let manager = StoresManager . testingInstance
2223 XCTAssertFalse ( manager. isAuthenticated)
2324 }
2425
2526
2627 /// Verifies that the Initial State is Authenticated, whenever there are Default Credentials set.
2728 ///
2829 func testInitialStateIsAuthenticatedAssumingCredentialsWereNotMissing( ) {
29- let session = initializeTestingSession ( )
30+ var session = SessionManager . testingInstance
3031 session. credentials = Settings . credentials
3132
32- let manager = initializeTestingStoresManager ( )
33+ let manager = StoresManager . testingInstance
3334 XCTAssertTrue ( manager. isAuthenticated)
3435 }
3536
3637
3738 /// Verifies that `authenticate(username: authToken:)` effectively switches the Manager to an Authenticated State.
3839 ///
3940 func testAuthenticateEffectivelyTogglesStoreManagerToAuthenticatedState( ) {
40- let manager = initializeTestingStoresManager ( )
41+ let manager = StoresManager . testingInstance
4142 manager. authenticate ( username: Settings . credentials. username, authToken: Settings . credentials. authToken)
4243
4344 XCTAssertTrue ( manager. isAuthenticated)
@@ -47,7 +48,7 @@ class StoresManagerTests: XCTestCase {
4748 /// Verifies that `deauthenticate` effectively switches the Manager to a Deauthenticated State.
4849 ///
4950 func testDeauthenticateEffectivelyTogglesStoreManagerToDeauthenticatedState( ) {
50- let manager = initializeTestingStoresManager ( )
51+ let manager = StoresManager . testingInstance
5152 manager. authenticate ( username: Settings . credentials. username, authToken: Settings . credentials. authToken)
5253 manager. deauthenticate ( )
5354
@@ -58,29 +59,35 @@ class StoresManagerTests: XCTestCase {
5859 /// Verifies that `authenticate(username: authToken:)` persists the Credentials in the Keychain Storage.
5960 ///
6061 func testAuthenticatePersistsDefaultCredentialsInKeychain( ) {
61- let manager = initializeTestingStoresManager ( )
62+ let manager = StoresManager . testingInstance
6263 manager. authenticate ( username: Settings . credentials. username, authToken: Settings . credentials. authToken)
6364
64- let session = initializeTestingSession ( )
65+ let session = SessionManager . testingInstance
6566 XCTAssertEqual ( session. credentials, Settings . credentials)
6667 }
6768}
6869
6970
70- // MARK: - Private Methods
71+ // MARK: - SessionManager: Testing Methods
7172//
72- private extension StoresManagerTests {
73+ private extension SessionManager {
7374
74- /// Returns a Session instance with testing Keychain/UserDefaults
75+ /// Returns a SessionManager instance with testing Keychain/UserDefaults
7576 ///
76- func initializeTestingSession ( ) -> Session {
77- return Session ( keychainServiceName : Settings . keychainServiceName , defaultsStorage : Settings . defaultsStorage )
77+ static var testingInstance : SessionManager {
78+ return SessionManager ( defaults : Settings . defaults , keychainServiceName : Settings . keychainServiceName )
7879 }
80+ }
81+
82+
83+ // MARK: - StoresManager: Testing Methods
84+ //
85+ private extension StoresManager {
7986
8087 /// Returns a StoresManager instance with testing Keychain/UserDefaults
8188 ///
82- func initializeTestingStoresManager ( ) -> StoresManager {
83- return StoresManager ( keychainServiceName : Settings . keychainServiceName , defaultsStorage : Settings . defaultsStorage )
89+ static var testingInstance : StoresManager {
90+ return StoresManager ( defaults : Settings . defaults , keychainServiceName : Settings . keychainServiceName )
8491 }
8592}
8693
@@ -89,6 +96,6 @@ private extension StoresManagerTests {
8996//
9097private enum Settings {
9198 static let credentials = Credentials ( username: " username " , authToken: " authToken " )
92- static let defaultsStorage = UserDefaults ( suiteName: " testingKeychainServiceName " ) !
99+ static let defaults = UserDefaults ( suiteName: " testingKeychainServiceName " ) !
93100 static let keychainServiceName = " com.woocommerce.storesmanagertests "
94101}
0 commit comments