@@ -24,7 +24,9 @@ import FoundationNetworking
24
24
#endif
25
25
26
26
final class RegistryManagerTests : XCTestCase {
27
- override func setUp( ) {
27
+ private let queue = DispatchQueue ( label: " org.swift.registry.tests " )
28
+
29
+ class override func setUp( ) {
28
30
PackageModel . _useLegacyIdentities = false
29
31
30
32
RegistryManager . archiverFactory = { _ in
@@ -36,14 +38,16 @@ final class RegistryManagerTests: XCTestCase {
36
38
configuration. protocolClasses = [ MockPackageRegistryURLProtocol . self] + ( configuration. protocolClasses ?? [ ] )
37
39
return URLSessionHTTPClient ( configuration: configuration)
38
40
}
41
+
42
+ super. setUp ( )
39
43
}
40
44
41
45
func testDiscoverPackageRegistry( ) {
42
46
let identity = PackageIdentity ( url: " https://github.com/mona/LinkedList " )
43
47
let package = PackageReference ( identity: identity, path: " /LinkedList " )
44
48
let expectation = XCTestExpectation ( description: " discover package registry " )
45
49
46
- RegistryManager . discover ( for: package ) { result in
50
+ RegistryManager . discover ( for: package , on : queue ) { result in
47
51
defer { expectation. fulfill ( ) }
48
52
49
53
XCTAssertResultSuccess ( result)
@@ -58,15 +62,18 @@ final class RegistryManagerTests: XCTestCase {
58
62
let expectation = XCTestExpectation ( description: " discover package registry " )
59
63
let nestedExpectation = XCTestExpectation ( description: " fetch versions " )
60
64
61
- RegistryManager . discover ( for: package ) { result in
65
+ RegistryManager . discover ( for: package , on : queue ) { result in
62
66
defer { expectation. fulfill ( ) }
63
- guard case . success( let manager) = result else { return }
67
+ guard case . success( let manager) = result else {
68
+ return XCTAssertResultSuccess ( result)
69
+ }
64
70
65
71
manager. fetchVersions ( of: package ) { result in
66
72
defer { nestedExpectation. fulfill ( ) }
67
73
68
- XCTAssertResultSuccess ( result)
69
- guard case . success( let versions) = result else { return }
74
+ guard case . success( let versions) = result else {
75
+ return XCTAssertResultSuccess ( result)
76
+ }
70
77
71
78
XCTAssertEqual ( versions, [ " 1.1.1 " , " 1.0.0 " ] )
72
79
XCTAssertFalse ( versions. contains ( " 1.1.0 " ) , " problematic releases shouldn't be included " )
@@ -82,17 +89,20 @@ final class RegistryManagerTests: XCTestCase {
82
89
let expectation = XCTestExpectation ( description: " discover package registry " )
83
90
let nestedExpectation = XCTestExpectation ( description: " fetch manifest " )
84
91
85
- RegistryManager . discover ( for: package ) { result in
92
+ RegistryManager . discover ( for: package , on : queue ) { result in
86
93
defer { expectation. fulfill ( ) }
87
- guard case . success( let manager) = result else { return }
94
+ guard case . success( let manager) = result else {
95
+ return XCTAssertResultSuccess ( result)
96
+ }
88
97
89
98
let manifestLoader = ManifestLoader ( manifestResources: Resources . default)
90
99
91
100
manager. fetchManifest ( for: " 1.1.1 " , of: package , using: manifestLoader) { result in
92
101
defer { nestedExpectation. fulfill ( ) }
93
102
94
- XCTAssertResultSuccess ( result)
95
- guard case . success( let manifest) = result else { return }
103
+ guard case . success( let manifest) = result else {
104
+ return XCTAssertResultSuccess ( result)
105
+ }
96
106
97
107
XCTAssertEqual ( manifest. name, " LinkedList " )
98
108
@@ -117,19 +127,20 @@ final class RegistryManagerTests: XCTestCase {
117
127
let identity = PackageIdentity ( url: " https://github.com/mona/LinkedList " )
118
128
let package = PackageReference ( identity: identity, path: " /LinkedList " )
119
129
let expectation = XCTestExpectation ( description: " discover package registry " )
120
- let nestedExpectation = XCTestExpectation ( description: " fetch manifest " )
130
+ let nestedExpectation = XCTestExpectation ( description: " download source archive " )
121
131
122
- RegistryManager . discover ( for: package ) { result in
132
+ RegistryManager . discover ( for: package , on : queue ) { result in
123
133
defer { expectation. fulfill ( ) }
124
- guard case . success( let manager) = result else { return }
134
+ guard case . success( let manager) = result else {
135
+ return XCTAssertResultSuccess ( result)
136
+ }
125
137
126
138
let fs = InMemoryFileSystem ( )
127
- let path = AbsolutePath ( " /LinkedList-1.1.1.zip " )
139
+ let path = AbsolutePath ( " /LinkedList-1.1.1 " )
128
140
manager. downloadSourceArchive ( for: " 1.1.1 " , of: package , into: fs, at: path) { result in
129
141
defer { nestedExpectation. fulfill ( ) }
130
142
131
- XCTAssertResultSuccess ( result)
132
- guard case . success = result else { return }
143
+ guard case . success = result else { return XCTAssertResultSuccess ( result) }
133
144
134
145
XCTAssertNoThrow {
135
146
let data = try fs. readFileContents ( path)
0 commit comments