summaryrefslogtreecommitdiffhomepage
path: root/spec/entity_manager_spec.rb
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2021-06-16 07:09:43 -0400
committerrealtradam <[email protected]>2021-06-16 07:09:43 -0400
commitba707eebb995eb46141d3c5e1701cd7252ba81c8 (patch)
treedfddbfd069825f55ace5ab25a4a3c09540744476 /spec/entity_manager_spec.rb
parentf88af5840b9d6af0f78090c894818c5ee138979c (diff)
downloadFelECS-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.rb31
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