Skip to content

Commit 9e8b404

Browse files
Add unit tests for ApplicationPasswordMapper
1 parent e9c7c10 commit 9e8b404

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

Networking/Networking.xcodeproj/project.pbxproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,10 +730,12 @@
730730
E1BAB2C32913FA6400C3982B /* ResponseDataValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1BAB2C22913FA6400C3982B /* ResponseDataValidator.swift */; };
731731
E1BAB2C52913FB1800C3982B /* WordPressApiValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1BAB2C42913FB1800C3982B /* WordPressApiValidator.swift */; };
732732
E1BAB2C72913FB5800C3982B /* WordPressApiError.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1BAB2C62913FB5800C3982B /* WordPressApiError.swift */; };
733+
EE338A0E294AF9BD00183934 /* ApplicationPasswordMapperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE338A0D294AF9BD00183934 /* ApplicationPasswordMapperTests.swift */; };
733734
EE54C89F2947782E00A9BF61 /* ApplicationPasswordUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE54C89E2947782E00A9BF61 /* ApplicationPasswordUseCase.swift */; };
734735
EE54C8A5294859D200A9BF61 /* ApplicationPasswordNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE54C8A4294859D200A9BF61 /* ApplicationPasswordNetwork.swift */; };
735736
EE54C8A729486B6800A9BF61 /* ApplicationPasswordMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE54C8A629486B6800A9BF61 /* ApplicationPasswordMapper.swift */; };
736737
EE8A86F1286C5226003E8AA4 /* media-update-product-id-in-wordpress-site.json in Resources */ = {isa = PBXBuildFile; fileRef = EE8A86F0286C5226003E8AA4 /* media-update-product-id-in-wordpress-site.json */; };
738+
EE8DE42F294AFC58005054E7 /* generate-application-password-using-wpcom-token-success.json in Resources */ = {isa = PBXBuildFile; fileRef = EE8DE42E294AFC58005054E7 /* generate-application-password-using-wpcom-token-success.json */; };
737739
EECB7EE8286555180028C888 /* media-update-product-id.json in Resources */ = {isa = PBXBuildFile; fileRef = EECB7EE7286555180028C888 /* media-update-product-id.json */; };
738740
FE28F6E226840DED004465C7 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE28F6E126840DED004465C7 /* User.swift */; };
739741
FE28F6E426842848004465C7 /* UserMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE28F6E326842848004465C7 /* UserMapper.swift */; };
@@ -1495,10 +1497,12 @@
14951497
E1BAB2C22913FA6400C3982B /* ResponseDataValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResponseDataValidator.swift; sourceTree = "<group>"; };
14961498
E1BAB2C42913FB1800C3982B /* WordPressApiValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressApiValidator.swift; sourceTree = "<group>"; };
14971499
E1BAB2C62913FB5800C3982B /* WordPressApiError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressApiError.swift; sourceTree = "<group>"; };
1500+
EE338A0D294AF9BD00183934 /* ApplicationPasswordMapperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordMapperTests.swift; sourceTree = "<group>"; };
14981501
EE54C89E2947782E00A9BF61 /* ApplicationPasswordUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordUseCase.swift; sourceTree = "<group>"; };
14991502
EE54C8A4294859D200A9BF61 /* ApplicationPasswordNetwork.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordNetwork.swift; sourceTree = "<group>"; };
15001503
EE54C8A629486B6800A9BF61 /* ApplicationPasswordMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordMapper.swift; sourceTree = "<group>"; };
15011504
EE8A86F0286C5226003E8AA4 /* media-update-product-id-in-wordpress-site.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "media-update-product-id-in-wordpress-site.json"; sourceTree = "<group>"; };
1505+
EE8DE42E294AFC58005054E7 /* generate-application-password-using-wpcom-token-success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "generate-application-password-using-wpcom-token-success.json"; sourceTree = "<group>"; };
15021506
EECB7EE7286555180028C888 /* media-update-product-id.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "media-update-product-id.json"; sourceTree = "<group>"; };
15031507
F3F25DC15EC1D7C631169CB5 /* Pods_Networking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Networking.framework; sourceTree = BUILT_PRODUCTS_DIR; };
15041508
F6CEE1CA2AD376C0C28AE9F6 /* Pods-NetworkingTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NetworkingTests.release.xcconfig"; path = "../Pods/Target Support Files/Pods-NetworkingTests/Pods-NetworkingTests.release.xcconfig"; sourceTree = "<group>"; };
@@ -2028,6 +2032,7 @@
20282032
B559EBA820A0B5B100836CD4 /* Responses */ = {
20292033
isa = PBXGroup;
20302034
children = (
2035+
EE338A0A294AF92A00183934 /* AppliicationPassword */,
20312036
DE9DEEF4291CF1B40070AD7C /* site-plugin-without-envelope.json */,
20322037
028CB714290223CB00331C09 /* account-username-suggestions.json */,
20332038
028CB71C2902589E00331C09 /* create-account-error-email-exists.json */,
@@ -2513,6 +2518,7 @@
25132518
0359EA1E27AAE4680048DE2D /* WCPayChargeMapperTests.swift */,
25142519
68CB801328D8A05200E169F8 /* CustomerMapperTests.swift */,
25152520
68F48B1028E3BBC60045C15B /* WCAnalyticsCustomerMapperTests.swift */,
2521+
EE338A0D294AF9BD00183934 /* ApplicationPasswordMapperTests.swift */,
25162522
);
25172523
path = Mapper;
25182524
sourceTree = "<group>";
@@ -2587,6 +2593,14 @@
25872593
path = SystemStatusDetails;
25882594
sourceTree = "<group>";
25892595
};
2596+
EE338A0A294AF92A00183934 /* AppliicationPassword */ = {
2597+
isa = PBXGroup;
2598+
children = (
2599+
EE8DE42E294AFC58005054E7 /* generate-application-password-using-wpcom-token-success.json */,
2600+
);
2601+
path = AppliicationPassword;
2602+
sourceTree = "<group>";
2603+
};
25902604
EE54C899294777D000A9BF61 /* ApplicationPassword */ = {
25912605
isa = PBXGroup;
25922606
children = (
@@ -2777,6 +2791,7 @@
27772791
31A451D827863A2E00FE81AA /* stripe-account-restricted-overdue.json in Resources */,
27782792
D865CE69278CA245002C8520 /* stripe-payment-intent-unknown-status.json in Resources */,
27792793
0205021C27C86B9700FB1C6B /* inbox-note-without-isRead.json in Resources */,
2794+
EE8DE42F294AFC58005054E7 /* generate-application-password-using-wpcom-token-success.json in Resources */,
27802795
24F98C622502EFF600F49B68 /* feature-flags-load-all.json in Resources */,
27812796
DE50296128C609A300551736 /* jetpack-connected-user.json in Resources */,
27822797
B58D10C82114D21D00107ED4 /* generic_error.json in Resources */,
@@ -3379,6 +3394,7 @@
33793394
03EB998A2906AB0C00F06A39 /* JustInTimeMessagesRemoteTests.swift in Sources */,
33803395
DE34051D28BDF1C900CF0D97 /* JetpackConnectionURLMapperTests.swift in Sources */,
33813396
451A9836260B9DF90059D135 /* ShippingLabelPackagesMapperTests.swift in Sources */,
3397+
EE338A0E294AF9BD00183934 /* ApplicationPasswordMapperTests.swift in Sources */,
33823398
02BDB83723EA9C4D00BCC63E /* String+HTMLTests.swift in Sources */,
33833399
74CF5E8421402C04000CED0A /* TopEarnerStatsRemoteTests.swift in Sources */,
33843400
45B204BA24890A8C00FE6526 /* ProductCategoryMapperTests.swift in Sources */,
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import XCTest
2+
@testable import Networking
3+
4+
5+
/// ApplicationPasswordMapper Unit Tests
6+
///
7+
final class ApplicationPasswordMapperTests: XCTestCase {
8+
9+
/// Verifies that generate password using WPCOM token response is parsed properly
10+
///
11+
func test_response_is_properly_parsed_while_generating_password_using_WPCOM_token() {
12+
guard let password = mapGenerateUsingWPCOMResponse() else {
13+
XCTFail()
14+
return
15+
}
16+
17+
XCTAssertEqual(password, "passwordvalue")
18+
}
19+
}
20+
21+
// MARK: - Private Methods.
22+
//
23+
private extension ApplicationPasswordMapperTests {
24+
25+
/// Returns the ApplicationPasswordMapper output upon receiving success response
26+
///
27+
func mapGenerateUsingWPCOMResponse() -> String? {
28+
guard let response = Loader.contentsOf("generate-application-password-using-wpcom-token-success") else {
29+
return nil
30+
}
31+
32+
return try? ApplicationPasswordMapper().map(response: response)
33+
}
34+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"data": {
3+
"uuid": "8ef68e6b-4670-4cfd-8ca0-456e616bcd5e",
4+
"app_id": "",
5+
"name": "com.automattic.woocommerce.ios-app-client.iPhone",
6+
"created": "2022-12-15T06:39:38",
7+
"last_used": null,
8+
"last_ip": null,
9+
"password": "passwordvalue",
10+
"_links": {
11+
"self": [
12+
{
13+
"href": "https://website.com/wp-json/wp/v2/users/1/application-passwords/8ef68e6b-4670-4cfd-8ca0-456e616bcd5e"
14+
}
15+
]
16+
}
17+
}
18+
}

0 commit comments

Comments
 (0)