add StateComponentMappingTests
This commit is contained in:
parent
c222234adc
commit
2905541413
|
|
@ -31,6 +31,8 @@ class ComponentInstanceProviderTests: XCTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
// MARK: -
|
||||
|
||||
class ComponentTypeProviderTests: XCTestCase {
|
||||
func testProviderReturnsAnInstanceOfType() {
|
||||
let provider = ComponentTypeProvider(type: MockComponent.self)
|
||||
|
|
@ -74,6 +76,8 @@ class ComponentTypeProviderTests: XCTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
// MARK: -
|
||||
|
||||
class ComponentSingletonProviderTests: XCTestCase {
|
||||
func testProviderReturnsAnInstanceOfType() {
|
||||
let provider = ComponentSingletonProvider(type: MockComponent.self)
|
||||
|
|
@ -118,6 +122,8 @@ class ComponentSingletonProviderTests: XCTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
// MARK: -
|
||||
|
||||
class DynamicComponentProviderTests: XCTestCase {
|
||||
func testProviderReturnsTheInstance() {
|
||||
let instance = MockComponent(value: 0)
|
||||
|
|
@ -153,6 +159,8 @@ class DynamicComponentProviderTests: XCTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
// MARK: -
|
||||
|
||||
@testable import class FirebladeECS.EntityState
|
||||
|
||||
class EntityStateTests: XCTestCase {
|
||||
|
|
@ -252,6 +260,17 @@ class EntityStateTests: XCTestCase {
|
|||
XCTAssertNotNil(provider)
|
||||
XCTAssertTrue(provider === singletonProvider)
|
||||
}
|
||||
|
||||
func testHasReturnsFalseForNotCreatedProvider() {
|
||||
XCTAssertFalse(state.has(MockComponent.self))
|
||||
}
|
||||
|
||||
func testHasReturnsTrueForCreatedProvider() {
|
||||
state.add(MockComponent.self)
|
||||
XCTAssertTrue(state.has(MockComponent.self))
|
||||
}
|
||||
|
||||
// TODO: continue here
|
||||
|
||||
class MockComponent: ComponentInitializable {
|
||||
let value: Int
|
||||
|
|
@ -268,6 +287,8 @@ class EntityStateTests: XCTestCase {
|
|||
class MockComponent2: MockComponent {}
|
||||
}
|
||||
|
||||
// MARK: -
|
||||
|
||||
class EntityStateMachineTests: XCTestCase {
|
||||
var nexus = Nexus()
|
||||
var fsm = EntityStateMachine<String>(entity: .init(nexus: .init(), id: .invalid))
|
||||
|
|
@ -389,3 +410,48 @@ class EntityStateMachineTests: XCTestCase {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
class StateComponentMappingTests: XCTestCase {
|
||||
func testAddReturnsSameMappingForSameComponentType() {
|
||||
let state = EntityState()
|
||||
let mapping = state.add(MockComponent.self)
|
||||
XCTAssertFalse(mapping === mapping.add(MockComponent.self))
|
||||
}
|
||||
|
||||
func testAddReturnsSameMappingForDifferentComponentTypes() {
|
||||
let state = EntityState()
|
||||
let mapping = state.add(MockComponent.self)
|
||||
XCTAssertFalse(mapping === mapping.add(MockComponent2.self))
|
||||
}
|
||||
|
||||
func testAddAddsProviderToState() {
|
||||
let state = EntityState()
|
||||
let mapping = state.add(MockComponent.self)
|
||||
mapping.add(MockComponent2.self)
|
||||
XCTAssertTrue(state.has(MockComponent.self))
|
||||
}
|
||||
|
||||
class MockComponent: ComponentInitializable {
|
||||
let value: Int
|
||||
|
||||
init(value: Int) {
|
||||
self.value = value
|
||||
}
|
||||
|
||||
required init() {
|
||||
self.value = 0
|
||||
}
|
||||
}
|
||||
|
||||
class MockComponent2: ComponentInitializable {
|
||||
let value: String
|
||||
|
||||
init(value: String) {
|
||||
self.value = value
|
||||
}
|
||||
|
||||
required init() {
|
||||
self.value = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue