diff options
| author | realtradam <[email protected]> | 2022-01-03 08:19:24 -0500 |
|---|---|---|
| committer | realtradam <[email protected]> | 2022-01-03 08:19:24 -0500 |
| commit | aad51d646812804052ce2ae5e926b667b4e24d6d (patch) | |
| tree | e083c5fe4b8a388c87eab8ce955b966ebab22238 /spec/order_spec.rb | |
| parent | 55f1db30e7a609cebd2fab27c55ece1da45be232 (diff) | |
| download | FelECS-aad51d646812804052ce2ae5e926b667b4e24d6d.tar.gz FelECS-aad51d646812804052ce2ae5e926b667b4e24d6d.zip | |
.
Diffstat (limited to 'spec/order_spec.rb')
| -rw-r--r-- | spec/order_spec.rb | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/spec/order_spec.rb b/spec/order_spec.rb new file mode 100644 index 0000000..2dfe7a6 --- /dev/null +++ b/spec/order_spec.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +require_relative '../lib/felflame' + +# class EntitiesTest < Minitest::Test + +describe 'Order' do + before :all do + @result = [] + @system0 = FelFlame::Systems.new('System1', priority: 0) do + @result.push 0 + end + @system2 = FelFlame::Systems.new('System3', priority: 2) do + @result.push 2 + end + @system1 = FelFlame::Systems.new('System2', priority: 1) do + @result.push 1 + end + + @scene1 = FelFlame::Scenes.new('Scene0', priority: 1) + @scene0 = FelFlame::Scenes.new('Scene0', priority: 0) + end + + before :each do + end + + after :each do + @result.clear + @scene0.clear + @scene1.clear + @system0.priority = 0 + @system1.priority = 1 + @system2.priority = 2 + @scene0.priority = 0 + @scene1.priority = 1 + end + + it 'can sort Scenes' do + @scene0.add @system0 + @scene1.add @system1 + FelFlame::Order.sort( + @scene1, + @scene0 + ) + expect(@scene1.priority < @scene0.priority).to eq(true) + end + + it 'can sort Systems' do + @scene0.add @system0, @system1, @system2 + FelFlame::Order.sort( + @system2, + @system0, + @system1 + ) + @scene0.call + expect(@result).to eq([2,0,1]) + end + + it 'can handle array' do + FelFlame::Order.sort( + @system0, + [ + @system1, + @system2 + ] + ) + expect(@system0.priority < @system1.priority).to eq(true) + expect(@system0.priority < @system2.priority).to eq(true) + expect(@system1.priority == @system2.priority).to eq(true) + end +end |
