diff options
| author | realtradam <[email protected]> | 2021-06-16 07:09:43 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2021-06-16 07:09:43 -0400 |
| commit | ba707eebb995eb46141d3c5e1701cd7252ba81c8 (patch) | |
| tree | dfddbfd069825f55ace5ab25a4a3c09540744476 /spec/entity_manager_spec.rb | |
| parent | f88af5840b9d6af0f78090c894818c5ee138979c (diff) | |
| download | FelECS-ba707eebb995eb46141d3c5e1701cd7252ba81c8.tar.gz FelECS-ba707eebb995eb46141d3c5e1701cd7252ba81c8.zip | |
entities, components, and systems improved
Diffstat (limited to 'spec/entity_manager_spec.rb')
| -rw-r--r-- | spec/entity_manager_spec.rb | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/spec/entity_manager_spec.rb b/spec/entity_manager_spec.rb index 532e583..2db4787 100644 --- a/spec/entity_manager_spec.rb +++ b/spec/entity_manager_spec.rb @@ -54,15 +54,38 @@ describe 'Entities' do expect(@ent1.components[@component_manager].include?(@cmp2.id)).to be true end + it 'can get id from to_i' do + expect(@ent0.id).to eq(@ent0.to_i) + expect(@ent1.id).to eq(@ent1.to_i) + expect(@ent2.id).to eq(@ent2.to_i) + end + it 'can have components removed' do @ent0.add @cmp0 expect(@ent0.remove @cmp0).to be true + expect(@cmp0.entities.empty?).to be true expect(@ent0.components[@component_manager].empty?).to be true end - it 'can get id from to_i' do - expect(@ent0.id).to eq(@ent0.to_i) - expect(@ent1.id).to eq(@ent1.to_i) - expect(@ent2.id).to eq(@ent2.to_i) + it 'can have many components added then removed' do + @ent0.add @cmp0, @cmp1, @cmp2 + @ent1.add @cmp0, @cmp1 + @ent2.add @cmp1, @cmp2 + expect(@ent0.components).to eq({@component_manager => [0,1,2]}) + expect(@cmp0.entities).to eq([0,1]) + expect(@cmp1.entities).to eq([0,1,2]) + expect(@cmp2.entities).to eq([0,2]) + @ent1.delete + expect(@cmp0.entities).to eq([0]) + expect(@cmp1.entities).to eq([0,2]) + expect(@cmp2.entities).to eq([0,2]) + @cmp1.delete + expect(@ent0.components).to eq({@component_manager => [0,2]}) + @component_manager.each(&:delete) + expect(@component_manager.each.to_a).to eq([]) + expect(@ent0.components).to eq({@component_manager => []}) + expect(@ent2.components).to eq({@component_manager => []}) + FelFlame::Entities.each(&:delete) + expect(FelFlame::Entities.each.to_a).to eq([]) end end |
