From 254957cde5e8818305993ea38facd142deac20e7 Mon Sep 17 00:00:00 2001 From: Marc Di Luzio Date: Tue, 7 Jul 2020 21:30:51 +0100 Subject: [PATCH] Add a test to check daytime and rover recharge --- pkg/game/world_test.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/pkg/game/world_test.go b/pkg/game/world_test.go index 6e5f7d7..06f659d 100644 --- a/pkg/game/world_test.go +++ b/pkg/game/world_test.go @@ -313,3 +313,40 @@ func TestWorld_Charge(t *testing.T) { } } + +func TestWorld_Daytime(t *testing.T) { + world := NewWorld(1) + + a, err := world.SpawnRover() + assert.NoError(t, err) + + // Remove rover charge + rover := world.Rovers[a] + rover.Charge = 0 + world.Rovers[a] = rover + + // Try and recharge, should work + world.RoverRecharge(a) + assert.Equal(t, 1, world.Rovers[a].Charge) + + // Loop for half the day + for i := 0; i < world.TicksPerDay/2; i++ { + assert.True(t, world.Daytime()) + world.ExecuteCommandQueues() + } + + // Remove rover charge again + rover = world.Rovers[a] + rover.Charge = 0 + world.Rovers[a] = rover + + // Try and recharge, should fail + world.RoverRecharge(a) + assert.Equal(t, 0, world.Rovers[a].Charge) + + // Loop for half the day + for i := 0; i < world.TicksPerDay/2; i++ { + assert.False(t, world.Daytime()) + world.ExecuteCommandQueues() + } +}