From 7be2a0f1b74118cab0c0e7924d6a47bb6132b937 Mon Sep 17 00:00:00 2001 From: Marc Di Luzio Date: Fri, 5 Jun 2020 18:06:16 +0100 Subject: [PATCH] Add tests for each current API These aren't extensive yet, and don't reset the server, but it's a good step forward --- pkg/rove/integration_test.go | 76 +++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 2 deletions(-) diff --git a/pkg/rove/integration_test.go b/pkg/rove/integration_test.go index cec57f1..1368f96 100644 --- a/pkg/rove/integration_test.go +++ b/pkg/rove/integration_test.go @@ -9,14 +9,14 @@ import ( var server Server = "localhost:80" -func TestStatus(t *testing.T) { +func TestServer_Status(t *testing.T) { status, err := server.Status() assert.NoError(t, err, "Status must not return error") assert.True(t, status.Ready, "Server must return ready") assert.NotZero(t, len(status.Version), "Version must not be empty") } -func TestRegister(t *testing.T) { +func TestServer_Register(t *testing.T) { d1 := RegisterData{ Name: uuid.New().String(), } @@ -37,3 +37,75 @@ func TestRegister(t *testing.T) { assert.NoError(t, err, "Register must not return error") assert.False(t, r3.Success, "Register must return fail for duplicate registration") } + +func TestServer_Spawn(t *testing.T) { + d1 := RegisterData{ + Name: uuid.New().String(), + } + r1, err := server.Register(d1) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r1.Success, "Register must return success") + assert.NotZero(t, len(r1.Id), "Register must return registration ID") + + s := SpawnData{ + Id: r1.Id, + } + r2, err := server.Spawn(s) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r2.Success, "Register must return success") +} + +func TestServer_Commands(t *testing.T) { + d1 := RegisterData{ + Name: uuid.New().String(), + } + r1, err := server.Register(d1) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r1.Success, "Register must return success") + assert.NotZero(t, len(r1.Id), "Register must return registration ID") + + s := SpawnData{ + Id: r1.Id, + } + r2, err := server.Spawn(s) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r2.Success, "Register must return success") + + c := CommandsData{ + Id: r1.Id, + Commands: []Command{ + { + Command: CommandMove, + Bearing: "N", + Duration: 1, + }, + }, + } + r3, err := server.Commands(c) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r3.Success, "Register must return success") +} + +func TestServer_Radar(t *testing.T) { + d1 := RegisterData{ + Name: uuid.New().String(), + } + r1, err := server.Register(d1) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r1.Success, "Register must return success") + assert.NotZero(t, len(r1.Id), "Register must return registration ID") + + s := SpawnData{ + Id: r1.Id, + } + r2, err := server.Spawn(s) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r2.Success, "Register must return success") + + r := RadarData{ + Id: r1.Id, + } + r3, err := server.Radar(r) + assert.NoError(t, err, "Register must not return error") + assert.True(t, r3.Success, "Register must return success") +}