summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2021-07-07 17:51:08 -0400
committerrealtradam <[email protected]>2021-07-07 17:51:08 -0400
commitffaad06420594d0d007114042016362e88e6485a (patch)
tree5475deeae07494cf820526a5e11070d2bf4a311c
parent09fc5ef46b911f9d7e31cdedd240e7afc4c11c92 (diff)
downloadFelECS-ffaad06420594d0d007114042016362e88e6485a.tar.gz
FelECS-ffaad06420594d0d007114042016362e88e6485a.zip
added completed tests
-rw-r--r--spec/scene_manager_spec.rb64
-rw-r--r--spec/stage_manager_spec.rb103
2 files changed, 167 insertions, 0 deletions
diff --git a/spec/scene_manager_spec.rb b/spec/scene_manager_spec.rb
new file mode 100644
index 0000000..b2afab0
--- /dev/null
+++ b/spec/scene_manager_spec.rb
@@ -0,0 +1,64 @@
+require_relative '../felflame.rb'
+
+#class EntitiesTest < Minitest::Test
+
+describe 'Scenes' do
+ before :all do
+ @component_manager ||= FelFlame::Components.new('TestScenes', order: [])
+ @system2 = FelFlame::Systems.new('Test', priority: 2) do
+ @component_manager.each do |component|
+ component.order.push 2
+ end
+ end
+ @system1 = FelFlame::Systems.new('Mana', priority: 1) do
+ @component_manager.each do |component|
+ component.order.push 1
+ end
+ end
+ @system3 = FelFlame::Systems.new('Spell', priority: 3) do
+ @component_manager.each do |component|
+ component.order.push 3
+ end
+ end
+ @scene = FelFlame::Scenes.new('TestScene')
+ end
+
+ before :each do
+ @cmp = @component_manager.new
+ end
+
+ after :each do
+ FelFlame::Entities.each(&:delete)
+ @component_manager.each(&:delete)
+ @scene.clear
+ end
+
+ it 'can add Systems' do
+ @scene.add @system2, @system3, @system1
+ expect(@scene.systems).to eq([@system1, @system2, @system3])
+ end
+
+ it 'can remove Systems' do
+ @scene.add @system2, @system3, @system1
+ @scene.remove @system2, @system3
+ expect(@scene.systems).to eq([@system1])
+ end
+
+ it 'can clear Systems' do
+ @scene.add @system2, @system3, @system1
+ @scene.clear
+ expect(@scene.systems).to eq([])
+ end
+
+ it 'has the correct constant name' do
+ match = FelFlame::Scenes.new('Match')
+ expect(FelFlame::Scenes::Match.const_name).to eq('Match')
+ expect(match.const_name).to eq('Match')
+ end
+
+ it 'can execute Systems in the correct order' do
+ @scene.add @system2, @system3, @system1
+ @scene.call
+ expect(@cmp.order).to eq([1, 2, 3])
+ end
+end
diff --git a/spec/stage_manager_spec.rb b/spec/stage_manager_spec.rb
new file mode 100644
index 0000000..793758c
--- /dev/null
+++ b/spec/stage_manager_spec.rb
@@ -0,0 +1,103 @@
+require_relative '../felflame.rb'
+
+#class EntitiesTest < Minitest::Test
+
+describe 'Stage' do
+ before :all do
+ @component_manager ||= FelFlame::Components.new('TestStage', order: Array.new)
+ @system2 = FelFlame::Systems.new('StageTest', priority: 50) do
+ @component_manager.each do |component|
+ component.order.push 2
+ end
+ end
+ @system1 = FelFlame::Systems.new('StageMana', priority: 1) do
+ @component_manager.each do |component|
+ component.order.push 1
+ end
+ end
+ @system3 = FelFlame::Systems.new('StageSpell', priority: 100) do
+ @component_manager.each do |component|
+ component.order.push 3
+ end
+ end
+ @scene1 = FelFlame::Scenes.new('TestStage1')
+ @scene2 = FelFlame::Scenes.new('TestStage2')
+ @scene3 = FelFlame::Scenes.new('TestStage3')
+ end
+
+ before :each do
+ @cmp = @component_manager.new
+ @scene1.add @system1
+ @scene2.add @system2
+ @scene3.add @system3
+ end
+
+ after :each do
+ FelFlame::Entities.each(&:delete)
+ @component_manager.each(&:delete)
+ @scene1.clear
+ @scene2.clear
+ @scene3.clear
+ FelFlame::Stage.clear
+ end
+
+ it 'can add Scenes' do
+ FelFlame::Stage.add @scene2, @scene1, @scene3
+ expect(FelFlame::Stage.scenes).to eq([@scene2, @scene1, @scene3])
+ expect(FelFlame::Stage.systems).to eq([@system1, @system2, @system3])
+ end
+
+ it 'can remove Scenes' do
+ FelFlame::Stage.add @scene1, @scene2, @scene3
+ FelFlame::Stage.remove @scene1, @scene3
+ expect(FelFlame::Stage.scenes).to eq([@scene2])
+ expect(FelFlame::Stage.systems).to eq([@system2])
+ end
+
+ it 'can clear Scenes' do
+ FelFlame::Stage.add @scene1, @scene2, @scene3
+ FelFlame::Stage.clear
+ expect(FelFlame::Stage.scenes).to eq([])
+ expect(FelFlame::Stage.systems).to eq([])
+ end
+
+ it 'can execute Systems in the correct order' do
+ FelFlame::Stage.add @scene2, @scene1, @scene3
+ FelFlame::Stage.call
+ expect(@cmp.order).to eq([1, 2, 3])
+ end
+
+ it 'can add Systems to Scenes already added in Stage' do
+ FelFlame::Stage.add @scene2, @scene1, @scene3
+ system2p5 = FelFlame::Systems.new('StageAddingTest', priority: 75) do
+ @component_manager.each do |component|
+ component.order.push 2.5
+ end
+ end
+ @scene2.add system2p5
+ @scene3.add system2p5
+ FelFlame::Stage.call
+ expect(@cmp.order).to eq([1,2,2.5,3])
+ end
+
+ it 'can remove Systems to Scenes already added in Stage' do
+ FelFlame::Stage.add @scene2, @scene1, @scene3
+ system2p5 = FelFlame::Systems.new('StageAddingTest', priority: 75) do
+ @component_manager.each do |component|
+ component.order.push 2.5
+ end
+ end
+ @scene2.add system2p5
+ @scene3.add system2p5
+ @scene2.remove @system2
+ FelFlame::Stage.call
+ expect(@cmp.order).to eq([1,2.5,3])
+ end
+
+ it 'can have Systems change priority in an existing Stage' do
+ FelFlame::Stage.add @scene2, @scene1, @scene3
+ @system2.priority = 0
+ FelFlame::Stage.call
+ expect(@cmp.order).to eq([2,1,3])
+ end
+end