diff options
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 |
