Basic working with ships partly implimented
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# Nathan Hinton
|
||||
# Test file for the planets
|
||||
|
||||
require 'game/planet'
|
||||
|
||||
|
||||
RSpec.describe Planet do
|
||||
let(:planet) {Planet.new(5, 5, 5)}
|
||||
|
||||
before(:all) do
|
||||
Dir.mkdir('game_data') unless Dir.exist?('game_data')
|
||||
end
|
||||
|
||||
after(:each) do
|
||||
# Clean up any save file that might have been created
|
||||
save_file = File.join('game_data', "#{planet.planet_id}.save")
|
||||
File.delete(save_file) if File.exist?(save_file)
|
||||
end
|
||||
|
||||
describe '#initialize' do
|
||||
it 'starts with an initial position inside the game board' do
|
||||
planet.instance_variable_get(:@position).each do |pos|
|
||||
expect(pos < 5).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#claimable?' do
|
||||
it 'is claimable when no owner' do
|
||||
expect(planet.claimable?).to be true
|
||||
end
|
||||
|
||||
it 'is claimable if owned by another player and has no buildings' do
|
||||
planet.instance_variable_set(:@owner, 'nathan')
|
||||
expect(planet.claimable?).to be true
|
||||
end
|
||||
|
||||
it 'is not claimable if owned by another player and has buildings' do
|
||||
planet.instance_variable_set(:@owner, 'nathan')
|
||||
planet.instance_variable_set(:@buildings, ['command post'])
|
||||
expect(planet.claimable?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
describe '#claim' do
|
||||
it 'sets the owner of the planet to a given player' do
|
||||
planet.claim('nathan')
|
||||
expect(planet.owner).to eq 'nathan'
|
||||
end
|
||||
|
||||
it 'overwrites the player even if it was already set' do
|
||||
planet.claim('nathan')
|
||||
expect(planet.owner).to eq 'nathan'
|
||||
planet.claim('leah')
|
||||
expect(planet.owner).to eq 'leah'
|
||||
end
|
||||
end
|
||||
|
||||
describe '#update' do
|
||||
it 'process updates for the planet' do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#save_to_file' do
|
||||
it 'saves the planet to a file' do
|
||||
expect{planet.save_to_file}.to_not raise_error
|
||||
# Check that save file was created.
|
||||
expect(File.exist?(File.join('game_data', "#{planet.planet_id}_planet_.save"))).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe '#load_from_save' do
|
||||
it 'can load a planet from a save' do
|
||||
planet.save_to_file
|
||||
expect(File.exist?(File.join('game_data', "#{planet.planet_id}_planet_.save"))).to be true
|
||||
expect(Planet.load_from_save(planet.planet_id)).to be_kind_of(Planet)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user