Skip to content

Commit

Permalink
Updates for 12.5
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Long committed Jun 10, 2021
1 parent a8e962a commit 730a02b
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

* Fix threading issue in LazyInjected and WeakLazyInjected property wrappers
* Fix argument passing in .implements
* Update projct for Xcode 12.5
* Update Swift class deprecation

### 1.4.1

Expand Down
43 changes: 43 additions & 0 deletions Tests/ResolverTests/ResolverScopeReferenceTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,49 @@ class ResolverScopeReferenceTests: XCTestCase {
}
}

func testResolverScopeCachedImplements() {
// Reset...
ResolverScope.cached.reset()
resolver.register { XYZSessionService() }
.implements(XYZSessionProtocol.self)
.scope(.cached)
let service1: XYZSessionService? = resolver.optional()
let service2: XYZSessionService? = resolver.optional()
XCTAssertNotNil(service1)
XCTAssertNotNil(service2)
// Also test if "implements" protocol resolves
let service3: XYZSessionProtocol? = resolver.optional()
XCTAssertNotNil(service3)
// check identity
var originalID: UUID?
if let s1 = service1, let s2 = service2, let s3 = service3 {
XCTAssert(s1.id == s2.id)
XCTAssert(s2.id == s3.id)
originalID = s1.id
} else {
XCTFail("sessions not cached")
}
// Reset...
ResolverScope.cached.reset()
// ...and try again
var newUUID: UUID?
if let newService: XYZSessionService = resolver.optional(), let originalID = originalID {
XCTAssert(originalID != newService.id)
newUUID = newService.id
} else {
XCTFail("newService not resolved")
}
// Reset...
ResolverScope.cached.reset()
// ...and try once more with protocol
if let newService: XYZSessionProtocol = resolver.optional(), let originalID = originalID, let newID = newUUID {
XCTAssert(originalID != newService.id)
XCTAssert(newID != newService.id)
} else {
XCTFail("newService not resolved")
}
}

func testResolverScopeUnique() {
resolver.register { XYZSessionService() }.scope(.unique)
let service1: XYZSessionService? = resolver.optional()
Expand Down
3 changes: 3 additions & 0 deletions Tests/ResolverTests/XCTestManifests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ extension ResolverArgumentTests {
// `swift test --generate-linuxmain`
// to regenerate.
static let __allTests__ResolverArgumentTests = [
("testGetKeyedArgumentPassingInImplements", testGetKeyedArgumentPassingInImplements),
("testGetKeyedArguments", testGetKeyedArguments),
("testGetPropertiesKeyedArguments", testGetPropertiesKeyedArguments),
("testGetSingleArgument", testGetSingleArgument),
("testGetSingleArgumentPassingInImplements", testGetSingleArgumentPassingInImplements),
("testKeyedArgumentsFunction", testKeyedArgumentsFunction),
("testOptionalArgument", testOptionalArgument),
("testPropertiesGetSingleArgument", testPropertiesGetSingleArgument),
Expand Down Expand Up @@ -150,6 +152,7 @@ extension ResolverScopeReferenceTests {
static let __allTests__ResolverScopeReferenceTests = [
("testResolverScopeApplication", testResolverScopeApplication),
("testResolverScopeCached", testResolverScopeCached),
("testResolverScopeCachedImplements", testResolverScopeCachedImplements),
("testResolverScopeGraph", testResolverScopeGraph),
("testResolverScopeShared", testResolverScopeShared),
("testResolverScopeUnique", testResolverScopeUnique),
Expand Down

0 comments on commit 730a02b

Please sign in to comment.