Skip to content

Commit 55b1682

Browse files
committed
Use CoreDataTestCase for all test cases which need a Core Data stack
1 parent e0464dd commit 55b1682

File tree

86 files changed

+358
-833
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+358
-833
lines changed

WordPress/WordPressTest/AccountServiceTests.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ import UIKit
22
import XCTest
33
@testable import WordPress
44

5-
class AccountServiceTests: XCTestCase {
6-
var contextManager: ContextManagerMock!
5+
class AccountServiceTests: CoreDataTestCase {
76
var accountService: AccountService!
87

98
override func setUp() {
109
super.setUp()
1110

12-
contextManager = ContextManagerMock()
1311
contextManager.setUpAsSharedInstance()
1412
accountService = AccountService(managedObjectContext: contextManager.mainContext)
1513
}
@@ -20,7 +18,6 @@ class AccountServiceTests: XCTestCase {
2018
deleteTestAccounts()
2119

2220
contextManager.tearDown()
23-
contextManager = nil
2421
accountService = nil
2522
}
2623

WordPress/WordPressTest/ApproveCommentActionTests.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import XCTest
22
@testable import WordPress
33

4-
final class ApproveCommentActionTests: XCTestCase {
4+
final class ApproveCommentActionTests: CoreDataTestCase {
55
private class TestableApproveComment: ApproveComment {
66
let service: MockNotificationActionsService
77

@@ -32,7 +32,6 @@ final class ApproveCommentActionTests: XCTestCase {
3232

3333
private var action: ApproveComment?
3434
private let utility = NotificationUtility()
35-
private var contextManager: ContextManagerMock!
3635

3736
private struct Constants {
3837
static let initialStatus: Bool = false
@@ -41,7 +40,6 @@ final class ApproveCommentActionTests: XCTestCase {
4140
override func setUp() {
4241
super.setUp()
4342
utility.setUp()
44-
contextManager = ContextManagerMock()
4543
action = TestableApproveComment(on: Constants.initialStatus, coreDataStack: contextManager)
4644
makeNetworkAvailable()
4745
}

WordPress/WordPressTest/AtomicAuthenticationServiceTests.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,12 @@ import UIKit
33
import XCTest
44
@testable import WordPress
55

6-
class AtomicAuthenticationServiceTests: XCTestCase {
7-
var contextManager: ContextManagerMock!
6+
class AtomicAuthenticationServiceTests: CoreDataTestCase {
87
var atomicService: AtomicAuthenticationService!
98

109
override func setUp() {
1110
super.setUp()
1211

13-
contextManager = ContextManagerMock()
14-
1512
let api = WordPressComRestApi(oAuthToken: "")
1613
let remote = AtomicAuthenticationServiceRemote(wordPressComRestApi: api)
1714
atomicService = AtomicAuthenticationService(remote: remote)
@@ -20,7 +17,6 @@ class AtomicAuthenticationServiceTests: XCTestCase {
2017
override func tearDown() {
2118
super.tearDown()
2219

23-
contextManager = nil
2420
atomicService = nil
2521
}
2622

WordPress/WordPressTest/Aztec/AztecPostViewController+MenuTests.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Nimble
55
import UIKit
66
import XCTest
77

8-
class AztecPostViewController_MenuTests: XCTestCase {
8+
class AztecPostViewController_MenuTests: CoreDataTestCase {
99

1010
class Mock: AztecPostViewController {
1111
var callback: ((UIAlertController) -> Void)?
@@ -18,12 +18,10 @@ class AztecPostViewController_MenuTests: XCTestCase {
1818
}
1919

2020
private var aztecPostViewController: Mock!
21-
private var contextManager: ContextManagerMock!
2221
private var context: NSManagedObjectContext!
2322

2423
override func setUpWithError() throws {
2524
try super.setUpWithError()
26-
contextManager = ContextManagerMock()
2725
context = contextManager.newDerivedContext()
2826
}
2927

WordPress/WordPressTest/BlockEditorSettingsServiceTests.swift

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,35 @@ import XCTest
22
import Nimble
33
@testable import WordPress
44

5-
class BlockEditorSettingsServiceTests: XCTestCase {
5+
class BlockEditorSettingsServiceTests: CoreDataTestCase {
66
let expectationTimeout = TimeInterval(1)
77
private let twentytwentyResponseFilename = "get_wp_v2_themes_twentytwenty"
88
private let twentytwentyoneResponseFilename = "get_wp_v2_themes_twentytwentyone"
99
private let blockSettingsNOTThemeJSONResponseFilename = "wp-block-editor-v1-settings-success-NotThemeJSON"
1010
private let blockSettingsThemeJSONResponseFilename = "wp-block-editor-v1-settings-success-ThemeJSON"
1111

1212
private var service: BlockEditorSettingsService!
13-
private var contextManager: ContextManagerMock!
14-
private var context: NSManagedObjectContext {
15-
contextManager.mainContext
16-
}
1713
var mockRemoteApi: MockWordPressComRestApi!
1814
var gssOriginalValue: Bool!
1915
private var blog: Blog!
2016

2117
override func setUp() {
22-
contextManager = ContextManagerMock()
2318
mockRemoteApi = MockWordPressComRestApi()
24-
blog = BlogBuilder(context)
19+
blog = BlogBuilder(mainContext)
2520
.with(wordPressVersion: "5.8")
2621
.withAnAccount()
2722
.build()
28-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: context)
23+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: mainContext)
2924
}
3025

3126
// MARK: Editor `theme_supports` support
3227
func testThemeSupportsNewTheme() {
33-
blog = BlogBuilder(context)
28+
blog = BlogBuilder(mainContext)
3429
.with(wordPressVersion: "5.7")
3530
.with(isHostedAtWPCom: true)
3631
.build()
3732

38-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: context)
33+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: mainContext)
3934
let mockedResponse = mockedData(withFilename: twentytwentyoneResponseFilename)
4035
let waitExpectation = expectation(description: "Theme should be successfully fetched")
4136
service.fetchSettings { result in
@@ -57,12 +52,12 @@ class BlockEditorSettingsServiceTests: XCTestCase {
5752
}
5853

5954
func testThemeSupportsThemeChange() {
60-
blog = BlogBuilder(context)
55+
blog = BlogBuilder(mainContext)
6156
.with(wordPressVersion: "5.7")
6257
.with(isHostedAtWPCom: true)
6358
.build()
6459

65-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: context)
60+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: mainContext)
6661

6762
setData(withFilename: twentytwentyResponseFilename)
6863
let originalChecksum = blog.blockEditorSettings?.checksum ?? ""
@@ -88,12 +83,12 @@ class BlockEditorSettingsServiceTests: XCTestCase {
8883
}
8984

9085
func testThemeSupportsThemeIsTheSame() {
91-
blog = BlogBuilder(context)
86+
blog = BlogBuilder(mainContext)
9287
.with(wordPressVersion: "5.7")
9388
.with(isHostedAtWPCom: true)
9489
.build()
9590

96-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: context)
91+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: mainContext)
9792

9893
setData(withFilename: twentytwentyoneResponseFilename)
9994
let originalChecksum = blog.blockEditorSettings?.checksum ?? ""
@@ -249,7 +244,7 @@ class BlockEditorSettingsServiceTests: XCTestCase {
249244
func testFetchBlockEditorSettings_OrgSite_NoPlugin() {
250245
let mockedResponse = mockedData(withFilename: blockSettingsNOTThemeJSONResponseFilename)
251246
let mockOrgRemoteApi = MockWordPressOrgRestApi()
252-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockOrgRemoteApi, context: context)
247+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockOrgRemoteApi, context: mainContext)
253248

254249
let waitExpectation = expectation(description: "Theme should be successfully fetched")
255250
service.fetchSettings { _ in
@@ -270,7 +265,7 @@ class BlockEditorSettingsServiceTests: XCTestCase {
270265
func testFetchBlockEditorSettings_OrgSite() {
271266
let mockedResponse = mockedData(withFilename: blockSettingsNOTThemeJSONResponseFilename)
272267
let mockOrgRemoteApi = MockWordPressOrgRestApi()
273-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockOrgRemoteApi, context: context)
268+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockOrgRemoteApi, context: mainContext)
274269

275270
let waitExpectation = expectation(description: "Theme should be successfully fetched")
276271
service.fetchSettings { _ in
@@ -285,12 +280,12 @@ class BlockEditorSettingsServiceTests: XCTestCase {
285280
}
286281

287282
func testFetchBlockEditorSettings_Com5_8Site() {
288-
blog = BlogBuilder(context)
283+
blog = BlogBuilder(mainContext)
289284
.with(wordPressVersion: "5.8")
290285
.withAnAccount()
291286
.build()
292287

293-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: context)
288+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: mainContext)
294289

295290
let mockedResponse = mockedData(withFilename: blockSettingsNOTThemeJSONResponseFilename)
296291
let waitExpectation = expectation(description: "Theme should be successfully fetched")
@@ -306,12 +301,12 @@ class BlockEditorSettingsServiceTests: XCTestCase {
306301
}
307302

308303
func testFetchBlockEditorSettings_Com5_9Site() {
309-
blog = BlogBuilder(context)
304+
blog = BlogBuilder(mainContext)
310305
.with(wordPressVersion: "5.9")
311306
.withAnAccount()
312307
.build()
313308

314-
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: context)
309+
service = BlockEditorSettingsService(blog: blog, remoteAPI: mockRemoteApi, context: mainContext)
315310

316311
let mockedResponse = mockedData(withFilename: blockSettingsNOTThemeJSONResponseFilename)
317312
let waitExpectation = expectation(description: "Theme should be successfully fetched")

WordPress/WordPressTest/BlogDetailsSubsectionToSectionCategoryTests.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import XCTest
22
@testable import WordPress
33

4-
class BlogDetailsSubsectionToSectionCategoryTests: XCTestCase {
5-
private var contextManager: ContextManagerMock!
4+
class BlogDetailsSubsectionToSectionCategoryTests: CoreDataTestCase {
65
var blog: Blog!
76

87
override func setUp() {
9-
contextManager = ContextManagerMock()
108
blog = BlogBuilder(contextManager.mainContext).build()
119
}
1210

WordPress/WordPressTest/BlogServiceAuthorTests.swift

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,18 @@ import CoreData
22
import XCTest
33
@testable import WordPress
44

5-
class BlogServiceAuthorTests: XCTestCase {
6-
var contextManager: ContextManagerMock!
5+
class BlogServiceAuthorTests: CoreDataTestCase {
76
var blogService: BlogService!
8-
var context: NSManagedObjectContext {
9-
return contextManager.mainContext
10-
}
117

128
override func setUp() {
139
super.setUp()
1410

15-
contextManager = ContextManagerMock()
1611
blogService = BlogService(managedObjectContext: contextManager.mainContext)
1712
}
1813

1914
override func tearDown() {
2015
super.tearDown()
2116

22-
contextManager = nil
2317
blogService = nil
2418
}
2519

WordPress/WordPressTest/BlogServiceDeduplicationTests.swift

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,18 @@ import CoreData
22
import XCTest
33
@testable import WordPress
44

5-
class BlogServiceDeduplicationTests: XCTestCase {
6-
var contextManager: ContextManagerMock!
5+
class BlogServiceDeduplicationTests: CoreDataTestCase {
76
var blogService: BlogService!
8-
var context: NSManagedObjectContext {
9-
return contextManager.mainContext
10-
}
117

128
override func setUp() {
139
super.setUp()
1410

15-
contextManager = ContextManagerMock()
1611
blogService = BlogService(managedObjectContext: contextManager.mainContext)
1712
}
1813

1914
override func tearDown() {
2015
super.tearDown()
2116

22-
contextManager = nil
2317
blogService = nil
2418
}
2519

@@ -134,7 +128,7 @@ class BlogServiceDeduplicationTests: XCTestCase {
134128
private extension BlogServiceDeduplicationTests {
135129
func deduplicateAndSave(_ account: WPAccount) {
136130
blogService.deduplicateBlogs(for: account)
137-
contextManager.saveContextAndWait(context)
131+
contextManager.saveContextAndWait(mainContext)
138132
}
139133

140134
func isDeleted(_ object: NSManagedObject) -> Bool {
@@ -149,13 +143,13 @@ private extension BlogServiceDeduplicationTests {
149143

150144
@discardableResult
151145
func createAccount() -> WPAccount {
152-
let accountService = AccountService(managedObjectContext: context)
146+
let accountService = AccountService(managedObjectContext: mainContext)
153147
return accountService.createOrUpdateAccount(withUsername: "twoface", authToken: "twotoken")
154148
}
155149

156150
@discardableResult
157151
func createBlog(id: Int, url: String, account: WPAccount) -> Blog {
158-
let blog = NSEntityDescription.insertNewObject(forEntityName: "Blog", into: context) as! Blog
152+
let blog = NSEntityDescription.insertNewObject(forEntityName: "Blog", into: mainContext) as! Blog
159153
blog.dotComID = id as NSNumber
160154
blog.url = url
161155
blog.xmlrpc = url
@@ -165,7 +159,7 @@ private extension BlogServiceDeduplicationTests {
165159

166160
@discardableResult
167161
func createDraft(title: String, blog: Blog, id: Int? = nil) -> AbstractPost {
168-
let post = NSEntityDescription.insertNewObject(forEntityName: "Post", into: context) as! Post
162+
let post = NSEntityDescription.insertNewObject(forEntityName: "Post", into: mainContext) as! Post
169163
post.postTitle = title
170164
post.blog = blog
171165
post.postID = id.map({ $0 as NSNumber })

WordPress/WordPressTest/BlogSettingsDiscussionTests.swift

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@ import Foundation
22
@testable import WordPress
33

44

5-
class BlogSettingsDiscussionTests: XCTestCase {
6-
fileprivate var manager: ContextManagerMock!
7-
8-
override func setUp() {
9-
manager = ContextManagerMock()
10-
}
11-
5+
class BlogSettingsDiscussionTests: CoreDataTestCase {
126
func testCommentsAutoapprovalDisabledEnablesManualModerationFlag() {
137
let settings = newSettings()
148
settings.commentsAutoapproval = .disabled
@@ -76,9 +70,8 @@ class BlogSettingsDiscussionTests: XCTestCase {
7670

7771
// MARK: - Private Helpers
7872
fileprivate func newSettings() -> BlogSettings {
79-
let context = manager!.mainContext
8073
let name = BlogSettings.classNameWithoutNamespaces()
81-
let entity = NSEntityDescription.insertNewObject(forEntityName: name, into: context)
74+
let entity = NSEntityDescription.insertNewObject(forEntityName: name, into: mainContext)
8275

8376
return entity as! BlogSettings
8477
}

0 commit comments

Comments
 (0)