diff options
| author | realtradam <[email protected]> | 2021-06-12 03:17:42 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2021-06-12 03:17:42 -0400 |
| commit | f9963f9bb5d141be39618cf162cbc8d39708e18e (patch) | |
| tree | 06434e50e9c8c75beb50e4ed7131363d0cde41da /spec/component_manager_spec.rb | |
| parent | 795cb85e284d6adc83d8a8770e1e2406322f4034 (diff) | |
| download | FelECS-f9963f9bb5d141be39618cf162cbc8d39708e18e.tar.gz FelECS-f9963f9bb5d141be39618cf162cbc8d39708e18e.zip | |
unit testing
Diffstat (limited to 'spec/component_manager_spec.rb')
| -rw-r--r-- | spec/component_manager_spec.rb | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/spec/component_manager_spec.rb b/spec/component_manager_spec.rb new file mode 100644 index 0000000..9c53cd2 --- /dev/null +++ b/spec/component_manager_spec.rb @@ -0,0 +1,89 @@ +require_relative '../felflame.rb' + +describe 'Components' do + + #let :component_manager do + # @component_manager ||= FelFlame::Components.new('TestComponents', :param1, param2: 'def') + #end + + before :all do + @component_manager ||= FelFlame::Components.new('TestComponents', :param1, param2: 'def') + end + + before :each do + @ent0 = FelFlame::Entities.new + @ent1 = FelFlame::Entities.new + @ent2 = FelFlame::Entities.new + @cmp0 = @component_manager.new + @cmp1 = @component_manager.new + @cmp2 = @component_manager.new + end + + after :each do + FelFlame::Entities.each(&:delete) + @component_manager.each(&:delete) + end + + it 'can delete a component' do + component_id = @cmp1.id + @ent0.add @cmp1 + + expect(@cmp1.delete).to be true + expect(@cmp1.id).to be_nil + expect(@component_manager[component_id]).to be_nil + expect(@cmp1.entities).to eq([]) + end + + it 'can iterate over all component managers' do + all_components = FelFlame::Components.constants + expect(all_components.length).to be > 0 + expect(FelFlame::Components.each).to be_an Enumerator + FelFlame::Components.each do |component_manager| + all_components.delete component_manager.to_s.to_sym + end + expect(all_components).to eq([]) + end + + it 'can change params on initialization' do + @cmp3 = @component_manager.new(param1: 'ok', param2: 10) + expect(@cmp3.attrs).to eq(param1: 'ok', param2: 10, id: @cmp3.id) + end + + + it 'sets default params correctly' do + expect(@cmp0.param1).to be_nil + expect(@cmp0.param2).to eq('def') + expect(@cmp1.param1).to be_nil + expect(@cmp1.param2).to eq('def') + expect(@cmp2.param1).to be_nil + expect(@cmp2.param2).to eq('def') + end + + it 'can read attrs' do + expect(@cmp0.attrs).to eq(param2: 'def', id: 0) + expect(@cmp1.attrs).to eq(param2: 'def', id: 1) + expect(@cmp2.attrs).to eq(param2: 'def', id: 2) + end + + it 'can set attrs' do + expect(@cmp0.param1 = 4).to eq(4) + expect(@cmp1.update_attrs(param1: 3, param2: 'new')).to eq(param1: 3, param2: 'new') + expect(@cmp1.attrs).to eq(param1: 3, param2: 'new', id: 1) + end + + it 'can be accessed' do + expect(@cmp0).to eq(@component_manager[0]) + expect(@cmp1).to eq(@component_manager[1]) + expect(@cmp2).to eq(@component_manager[2]) + end + + it 'can get id from to_i' do + expect(@cmp0.id).to eq(@cmp0.to_i) + expect(@cmp1.id).to eq(@cmp1.to_i) + expect(@cmp2.id).to eq(@cmp2.to_i) + end + + it 'cant overwrite exiting component managers' do + expect { FelFlame::Components.new('TestComponents') }.to raise_error(NameError) + end +end |
