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
|
/// This component provider calls a function to get the component instance. The function must
|
||||||
/// return a single component of the appropriate type.
|
/// return a single component of the appropriate type.
|
||||||
public class DynamicComponentProvider {
|
public class DynamicComponentProvider {
|
||||||
/// Wrapper for closure to make it hashable
|
/// Wrapper for closure to make it hashable via ObjectIdentifier
|
||||||
public class Closure {
|
public class Closure {
|
||||||
let provideComponent: () -> Component
|
let provideComponent: () -> Component
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -209,6 +209,50 @@ class EntityStateTests: XCTestCase {
|
||||||
XCTAssertTrue(provider?.getComponent() is MockComponent)
|
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 {
|
class MockComponent: ComponentInitializable {
|
||||||
let value: Int
|
let value: Int
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,13 @@ extension EntityStateTests {
|
||||||
("testAddWithMethodQualifierCreatesDynamicProvider", testAddWithMethodQualifierCreatesDynamicProvider),
|
("testAddWithMethodQualifierCreatesDynamicProvider", testAddWithMethodQualifierCreatesDynamicProvider),
|
||||||
("testAddWithNoQualifierCreatesTypeProvider", testAddWithNoQualifierCreatesTypeProvider),
|
("testAddWithNoQualifierCreatesTypeProvider", testAddWithNoQualifierCreatesTypeProvider),
|
||||||
("testAddWithSingletonQualifierCreatesSingletonProvider", testAddWithSingletonQualifierCreatesSingletonProvider),
|
("testAddWithSingletonQualifierCreatesSingletonProvider", testAddWithSingletonQualifierCreatesSingletonProvider),
|
||||||
("testAddWithTypeQualifierCreatesTypeProvider", testAddWithTypeQualifierCreatesTypeProvider)
|
("testAddWithTypeQualifierCreatesTypeProvider", testAddWithTypeQualifierCreatesTypeProvider),
|
||||||
|
("testGetReturnsDynamicProvider", testGetReturnsDynamicProvider),
|
||||||
|
("testGetReturnsInstanceProvider", testGetReturnsInstanceProvider),
|
||||||
|
("testGetReturnsPassedProvider", testGetReturnsPassedProvider),
|
||||||
|
("testGetReturnsSingletonProvider", testGetReturnsSingletonProvider),
|
||||||
|
("testGetReturnsTypeProvider", testGetReturnsTypeProvider),
|
||||||
|
("testGetReturnsTypeProviderByDefault", testGetReturnsTypeProviderByDefault)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue