working on reimplimenting server

This commit is contained in:
2025-12-19 19:23:54 -07:00
parent 4737531805
commit 057164122a
20 changed files with 1145 additions and 6 deletions
+95
View File
@@ -0,0 +1,95 @@
# Nathan Hinton 19 Dec 2025
#
# Defines tests for the planets
require './planet'
require './building'
RSpec.describe Planet do
describe '#initialize' do
it 'Starts in a position' do
expect(Planet.new().instance_variable_get(:@position)).to eq [0, 0, 0]
end
it 'Creates a buildings list' do
expect(Planet.new().instance_variable_get(:@buildings)).to eq []
end
end
describe '#delete' do
end
describe '#building_build' do
it 'Adds a building to the planet building list' do
planet = Planet.new()
test_building = Building.new(Player.new(), planet)
expect{planet.building_build(test_building)}.to_not raise_error
expect(planet.instance_variable_get(:@buildings)).to eq [test_building]
end
end
describe '#building_destroy' do
it 'removes a building from the list' do
planet = Planet.new()
test_building = Building.new(Player.new(), planet)
planet.building_build(test_building)
expect(planet.instance_variable_get(:@buildings)).to eq [test_building]
expect(planet.building_destroy(test_building)).to eq test_building
expect(planet.instance_variable_get(:@buildings)).to eq []
end
it 'raises an error if the building can not be removed' do
planet = Planet.new()
test_building = Building.new(Player.new(), planet)
planet.building_build(test_building)
test_building2 = Building.new(Player.new(), planet)
expect{planet.building_destroy(test_building2)}.to raise_error PlanetError, 'Building not found to delete'
end
end
describe '#capture' do
it 'sets the planet owner' do
planet = Planet.new()
player = Player.new(name: 'test0')
expect(planet.capture(player)).to be player
expect(planet.instance_variable_get(:@owner)).to be player
end
it 'removes all buildings from the planet' do
planet = Planet.new()
player = Player.new(name: 'test0')
planet.capture(player)
test_building = Building.new(player, planet)
planet.building_build(test_building)
player1 = Player.new(name: 'test1')
expect(planet.instance_variable_get(:@buildings)).to eq [test_building]
expect(planet.capture(player1)).to be player1
expect(planet.instance_variable_get(:@owner)).to be player1
expect(planet.instance_variable_get(:@buildings)).to eq []
end
end
describe '#tick' do
it 'Sends the tick event to all buildings on the planet' do
planet = Planet.new()
test_building1 = Building.new(Player.new(), planet)
test_building2 = Building.new(Player.new(), planet)
test_building3 = Building.new(Player.new(), planet)
planet.building_build(test_building1)
planet.building_build(test_building2)
planet.building_build(test_building3)
expect(test_building1).to receive(:tick)
expect(test_building2).to receive(:tick)
expect(test_building3).to receive(:tick)
expect(planet.tick).to eq planet.instance_variable_get(:@buildings)
end
end
end