add tests for EntityState.get
This commit is contained in:
parent
c6a2bb7740
commit
65fedb737e
|
|
@ -123,7 +123,7 @@ extension ComponentSingletonProvider: ComponentProvider {
|
|||
/// This component provider calls a function to get the component instance. The function must
|
||||
/// return a single component of the appropriate type.
|
||||
public class DynamicComponentProvider {
|
||||
/// Wrapper for closure to make it hashable
|
||||
/// Wrapper for closure to make it hashable via ObjectIdentifier
|
||||
public class Closure {
|
||||
let provideComponent: () -> Component
|
||||
|
||||
|
|
|
|||
|
|
@ -209,6 +209,50 @@ class EntityStateTests: XCTestCase {
|
|||
XCTAssertTrue(provider?.getComponent() is MockComponent)
|
||||
}
|
||||
|
||||
func testGetReturnsTypeProviderByDefault() {
|
||||
state.add(MockComponent.self)
|
||||
let provider = state.get(MockComponent.self)
|
||||
XCTAssertNotNil(provider)
|
||||
XCTAssertTrue(provider is ComponentTypeProvider?)
|
||||
}
|
||||
|
||||
func testGetReturnsInstanceProvider() {
|
||||
let component = MockComponent()
|
||||
state.add(MockComponent.self).withInstance(component)
|
||||
let provider = state.get(MockComponent.self)
|
||||
XCTAssertNotNil(provider)
|
||||
XCTAssertTrue(provider is ComponentInstanceProvider?)
|
||||
}
|
||||
|
||||
func testGetReturnsSingletonProvider() {
|
||||
state.add(MockComponent.self).withSingleton(MockComponent.self)
|
||||
let provider = state.get(MockComponent.self)
|
||||
XCTAssertNotNil(provider)
|
||||
XCTAssertTrue(provider is ComponentSingletonProvider?)
|
||||
}
|
||||
|
||||
func testGetReturnsDynamicProvider() {
|
||||
state.add(MockComponent.self).withMethod(.init { MockComponent() })
|
||||
let provider = state.get(MockComponent.self)
|
||||
XCTAssertNotNil(provider)
|
||||
XCTAssertTrue(provider is DynamicComponentProvider?)
|
||||
}
|
||||
|
||||
func testGetReturnsTypeProvider() {
|
||||
state.add(MockComponent.self).withType(MockComponent.self)
|
||||
let provider = state.get(MockComponent.self)
|
||||
XCTAssertNotNil(provider)
|
||||
XCTAssertTrue(provider is ComponentTypeProvider?)
|
||||
}
|
||||
|
||||
func testGetReturnsPassedProvider() {
|
||||
let singletonProvider = ComponentSingletonProvider(type: MockComponent.self)
|
||||
state.add(MockComponent.self).withProvider(singletonProvider)
|
||||
let provider = state.get(MockComponent.self) as? ComponentSingletonProvider
|
||||
XCTAssertNotNil(provider)
|
||||
XCTAssertTrue(provider === singletonProvider)
|
||||
}
|
||||
|
||||
class MockComponent: ComponentInitializable {
|
||||
let value: Int
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,13 @@ extension EntityStateTests {
|
|||
("testAddWithMethodQualifierCreatesDynamicProvider", testAddWithMethodQualifierCreatesDynamicProvider),
|
||||
("testAddWithNoQualifierCreatesTypeProvider", testAddWithNoQualifierCreatesTypeProvider),
|
||||
("testAddWithSingletonQualifierCreatesSingletonProvider", testAddWithSingletonQualifierCreatesSingletonProvider),
|
||||
("testAddWithTypeQualifierCreatesTypeProvider", testAddWithTypeQualifierCreatesTypeProvider)
|
||||
("testAddWithTypeQualifierCreatesTypeProvider", testAddWithTypeQualifierCreatesTypeProvider),
|
||||
("testGetReturnsDynamicProvider", testGetReturnsDynamicProvider),
|
||||
("testGetReturnsInstanceProvider", testGetReturnsInstanceProvider),
|
||||
("testGetReturnsPassedProvider", testGetReturnsPassedProvider),
|
||||
("testGetReturnsSingletonProvider", testGetReturnsSingletonProvider),
|
||||
("testGetReturnsTypeProvider", testGetReturnsTypeProvider),
|
||||
("testGetReturnsTypeProviderByDefault", testGetReturnsTypeProviderByDefault)
|
||||
]
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue