Skip to content

Commit f1790ac

Browse files
committed
Rename *ListSelectorDataSource to *ListSelectorCommand and update unit tests.
1 parent b8f4df7 commit f1790ac

14 files changed

+137
-133
lines changed

WooCommerce/Classes/ViewRelated/Products/Edit Product/Edit Price/ProductPriceSettingsViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ extension ProductPriceSettingsViewController: UITableViewDelegate {
229229
viewModel.handleSaleEndDateChange(nil)
230230
refreshViewContent()
231231
case .taxStatus:
232-
let command = ProductTaxStatusListSelectorDataSource(selected: viewModel.taxStatus)
232+
let command = ProductTaxStatusListSelectorCommand(selected: viewModel.taxStatus)
233233
let listSelectorViewController = ListSelectorViewController(command: command) { [weak self] selected in
234234
if let selected = selected {
235235
self?.viewModel.handleTaxStatusChange(selected)

WooCommerce/Classes/ViewRelated/Products/Edit Product/Inventory Settings/ProductInventorySettingsViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,14 +316,14 @@ extension ProductInventorySettingsViewController: UITableViewDelegate {
316316

317317
switch rowAtIndexPath(indexPath) {
318318
case .stockStatus:
319-
let command = ProductStockStatusListSelectorDataSource(selected: stockStatus)
319+
let command = ProductStockStatusListSelectorCommand(selected: stockStatus)
320320
let listSelectorViewController = ListSelectorViewController(command: command) { [weak self] selected in
321321
self?.stockStatus = selected
322322
self?.tableView.reloadData()
323323
}
324324
navigationController?.pushViewController(listSelectorViewController, animated: true)
325325
case .backorders:
326-
let command = ProductBackordersSettingListSelectorDataSource(selected: backordersSetting)
326+
let command = ProductBackordersSettingListSelectorCommand(selected: backordersSetting)
327327
let listSelectorViewController = ListSelectorViewController(command: command) { [weak self] selected in
328328
self?.backordersSetting = selected
329329
self?.tableView.reloadData()

WooCommerce/Classes/ViewRelated/Products/Edit Product/List Selector Data Source/ProductBackordersSettingListSelectorDataSource.swift renamed to WooCommerce/Classes/ViewRelated/Products/Edit Product/List Selector Data Source/ProductBackordersSettingListSelectorCommand.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Yosemite
33

44
/// `ListSelectorCommand` for selecting a Product Backorders Setting.
55
///
6-
final class ProductBackordersSettingListSelectorDataSource: ListSelectorCommand {
6+
final class ProductBackordersSettingListSelectorCommand: ListSelectorCommand {
77
typealias Model = ProductBackordersSetting
88
typealias Cell = BasicTableViewCell
99

WooCommerce/Classes/ViewRelated/Products/Edit Product/List Selector Data Source/ProductStockStatusListSelectorDataSource.swift renamed to WooCommerce/Classes/ViewRelated/Products/Edit Product/List Selector Data Source/ProductStockStatusListSelectorCommand.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Yosemite
33

44
/// `ListSelectorCommand` for selecting a Product Stock Status.
55
///
6-
final class ProductStockStatusListSelectorDataSource: ListSelectorCommand {
6+
final class ProductStockStatusListSelectorCommand: ListSelectorCommand {
77
typealias Model = ProductStockStatus
88
typealias Cell = BasicTableViewCell
99

WooCommerce/Classes/ViewRelated/Products/Edit Product/List Selector Data Source/ProductTaxStatusListSelectorDataSource.swift renamed to WooCommerce/Classes/ViewRelated/Products/Edit Product/List Selector Data Source/ProductTaxStatusListSelectorCommand.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Yosemite
33

44
/// `ListSelectorCommand` for selecting a Product Tax Status.
55
///
6-
final class ProductTaxStatusListSelectorDataSource: ListSelectorCommand {
6+
final class ProductTaxStatusListSelectorCommand: ListSelectorCommand {
77
typealias Model = ProductTaxStatus
88
typealias Cell = BasicTableViewCell
99

WooCommerce/Classes/ViewRelated/Products/Edit Product/Product Settings/List Selector Data Source/ProductStatusSettingListSelectorDataSource.swift renamed to WooCommerce/Classes/ViewRelated/Products/Edit Product/Product Settings/List Selector Data Source/ProductStatusSettingListSelectorCommand.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Yosemite
33

44
/// `ListSelectorCommand` for selecting a Product Status Setting.
55
///
6-
final class ProductStatusSettingListSelectorDataSource: ListSelectorCommand {
6+
final class ProductStatusSettingListSelectorCommand: ListSelectorCommand {
77
typealias Model = ProductStatus
88
typealias Cell = BasicTableViewCell
99

WooCommerce/Classes/ViewRelated/Products/Edit Product/Product Settings/ProductSettingsRows.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ enum ProductSettingsRows {
4444
}
4545

4646
func handleTap(sourceViewController: UIViewController, onCompletion: @escaping (ProductSettings) -> Void) {
47-
let command = ProductStatusSettingListSelectorDataSource(selected: settings.status)
47+
let command = ProductStatusSettingListSelectorCommand(selected: settings.status)
4848

4949
let listSelectorViewController = ListSelectorViewController(command: command) { selected in
5050

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 32 additions & 32 deletions
Large diffs are not rendered by default.

WooCommerce/WooCommerceTests/ViewRelated/ListSelector/ProductBackordersSettingListSelectorDataSourceTests.swift renamed to WooCommerce/WooCommerceTests/ViewRelated/ListSelector/ProductBackordersSettingListSelectorCommandTests.swift

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,35 @@ import XCTest
33
@testable import WooCommerce
44
@testable import Yosemite
55

6-
final class ProductBackordersSettingListSelectorDataSourceTests: XCTestCase {
6+
final class ProductBackordersSettingListSelectorCommandTests: XCTestCase {
77

88
func testSelectedSetting() {
99
let expectedSetting = ProductBackordersSetting.notAllowed
1010
let product = MockProduct().product(backordersSetting: expectedSetting)
11-
var dataSource = ProductBackordersSettingListSelectorDataSource(selected: product.backordersSetting)
12-
XCTAssertEqual(dataSource.selected, expectedSetting)
11+
let command = ProductBackordersSettingListSelectorCommand(selected: product.backordersSetting)
12+
let viewController = ListSelectorViewController(command: command, onDismiss: { _ in })
13+
XCTAssertEqual(command.selected, expectedSetting)
1314

1415
let newSetting = ProductBackordersSetting.allowedAndNotifyCustomer
15-
dataSource.handleSelectedChange(selected: newSetting)
16-
XCTAssertEqual(dataSource.selected, newSetting)
16+
command.handleSelectedChange(selected: newSetting, viewController: viewController)
17+
XCTAssertEqual(command.selected, newSetting)
1718
}
1819

1920
func testSettingListData() {
20-
let dataSource = ProductBackordersSettingListSelectorDataSource(selected: nil)
21-
XCTAssertEqual(dataSource.data.count, 3)
21+
let command = ProductBackordersSettingListSelectorCommand(selected: nil)
22+
XCTAssertEqual(command.data.count, 3)
2223
}
2324

2425
func testCellConfiguration() {
2526
let product = MockProduct().product()
26-
let dataSource = ProductBackordersSettingListSelectorDataSource(selected: product.backordersSetting)
27+
let command = ProductBackordersSettingListSelectorCommand(selected: product.backordersSetting)
2728
let nib = Bundle.main.loadNibNamed(BasicTableViewCell.classNameWithoutNamespaces, owner: self, options: nil)
2829
guard let cell = nib?.first as? BasicTableViewCell else {
2930
XCTFail()
3031
return
3132
}
3233

33-
dataSource.configureCell(cell: cell, model: product.backordersSetting)
34+
command.configureCell(cell: cell, model: product.backordersSetting)
3435

3536
XCTAssertEqual(cell.textLabel?.text, product.backordersSetting.description)
3637
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import XCTest
2+
3+
@testable import WooCommerce
4+
@testable import Yosemite
5+
6+
final class ProductStatusSettingListSelectorCommandTests: XCTestCase {
7+
8+
func testSelectedSetting() {
9+
let expectedSetting = ProductStatus.publish
10+
let product = MockProduct().product(status: expectedSetting)
11+
let command = ProductStatusSettingListSelectorCommand(selected: product.productStatus)
12+
let viewController = ListSelectorViewController(command: command, onDismiss: { _ in })
13+
XCTAssertEqual(command.selected, expectedSetting)
14+
15+
let newSetting = ProductStatus.pending
16+
command.handleSelectedChange(selected: newSetting, viewController: viewController)
17+
XCTAssertEqual(command.selected, newSetting)
18+
}
19+
20+
func testSettingListData() {
21+
let command = ProductStatusSettingListSelectorCommand(selected: nil)
22+
XCTAssertEqual(command.data.count, 4)
23+
}
24+
25+
func testCellConfiguration() {
26+
let product = MockProduct().product()
27+
let command = ProductStatusSettingListSelectorCommand(selected: product.productStatus)
28+
let nib = Bundle.main.loadNibNamed(BasicTableViewCell.classNameWithoutNamespaces, owner: self, options: nil)
29+
guard let cell = nib?.first as? BasicTableViewCell else {
30+
XCTFail()
31+
return
32+
}
33+
34+
command.configureCell(cell: cell, model: product.productStatus)
35+
36+
XCTAssertEqual(cell.textLabel?.text, product.productStatus.description)
37+
}
38+
39+
}

0 commit comments

Comments
 (0)