diff options
| author | _Tradam <[email protected]> | 2022-01-03 08:26:24 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-01-03 08:26:24 -0500 |
| commit | a0f792d8feadf919290b8349dbc0eac143545927 (patch) | |
| tree | ee70c5357d5969caaed08446c32746e656b223e6 /spec/stage_manager_spec.rb | |
| parent | b535a6b1bd8019dbeba17f3853b338383208c9b3 (diff) | |
| download | FelECS-v4.0.0.tar.gz FelECS-v4.0.0.zip | |
See Changelog
Diffstat (limited to 'spec/stage_manager_spec.rb')
| -rw-r--r-- | spec/stage_manager_spec.rb | 88 |
1 files changed, 25 insertions, 63 deletions
diff --git a/spec/stage_manager_spec.rb b/spec/stage_manager_spec.rb index ed1125c..16f9080 100644 --- a/spec/stage_manager_spec.rb +++ b/spec/stage_manager_spec.rb @@ -1,40 +1,36 @@ -require 'felflame' +# frozen_string_literal: true -#class EntitiesTest < Minitest::Test +require_relative '../lib/felflame' + +# 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 + @component_manager ||= FelFlame::Components.new('TestStage', order: []) + @system2 = FelFlame::Systems.new('StageTest', priority: 1) do + @component_manager.first.order.push 2 end - @system1 = FelFlame::Systems.new('StageMana', priority: 1) do - @component_manager.each do |component| - component.order.push 1 - end + @system1 = FelFlame::Systems.new('StageMana', priority: 3) do + @component_manager.first.order.push 1 end - @system3 = FelFlame::Systems.new('StageSpell', priority: 100) do - @component_manager.each do |component| - component.order.push 3 - end + @system3 = FelFlame::Systems.new('StageSpell', priority: 2) do + @scene1.add @system1 + @scene2.add @system2 + @scene3.add @system3 + @component_manager.first.order.push 3 end - @scene1 = FelFlame::Scenes.new('TestStage1') - @scene2 = FelFlame::Scenes.new('TestStage2') - @scene3 = FelFlame::Scenes.new('TestStage3') + @scene1 = FelFlame::Scenes.new('TestStage1', priority: 1) + @scene2 = FelFlame::Scenes.new('TestStage2', priority: 2) + @scene3 = FelFlame::Scenes.new('TestStage3', priority: 3) 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) + FelFlame::Entities.reverse_each(&:delete) + @component_manager.reverse_each(&:delete) @scene1.clear @scene2.clear @scene3.clear @@ -43,61 +39,27 @@ describe 'Stage' do 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]) + expect(FelFlame::Stage.scenes).to eq([@scene1, @scene2, @scene3]) 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 + it 'can call Scenes in correct order' do FelFlame::Stage.add @scene2, @scene1, @scene3 + @scene1.add @system1 + @scene2.add @system2 + @scene3.add @system3 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]) + expect(@component_manager.first.order).to eq([1, 2, 3]) end end |
