rove/cmd/rove-server/internal/api_test.go

101 lines
1.9 KiB
Go
Raw Normal View History

// +build integration
package internal
import (
"os"
"testing"
"github.com/google/uuid"
2020-06-06 12:45:45 +01:00
"github.com/mdiluz/rove/pkg/game"
"github.com/mdiluz/rove/pkg/rove"
"github.com/stretchr/testify/assert"
)
const (
defaultAddress = "localhost:80"
)
var serv = func() rove.Server {
var address = os.Getenv("ROVE_SERVER_ADDRESS")
if len(address) == 0 {
address = defaultAddress
}
return rove.Server(address)
}()
func TestServer_Status(t *testing.T) {
status, err := serv.Status()
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.True(t, status.Ready)
assert.NotZero(t, len(status.Version))
}
func TestServer_Register(t *testing.T) {
d1 := rove.RegisterData{
Name: uuid.New().String(),
}
r1, err := serv.Register(d1)
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.True(t, r1.Success)
d2 := rove.RegisterData{
Name: uuid.New().String(),
}
r2, err := serv.Register(d2)
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.True(t, r2.Success)
r3, err := serv.Register(d1)
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.False(t, r3.Success)
}
func TestServer_Command(t *testing.T) {
d1 := rove.RegisterData{
Name: uuid.New().String(),
}
r1, err := serv.Register(d1)
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.True(t, r1.Success)
c := rove.CommandData{
2020-06-06 12:45:45 +01:00
Commands: []game.Command{
{
2020-06-06 12:45:45 +01:00
Command: game.CommandMove,
Bearing: "N",
Duration: 1,
},
},
}
r3, err := serv.Command(d1.Name, c)
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.True(t, r3.Success)
}
func TestServer_Radar(t *testing.T) {
d1 := rove.RegisterData{
Name: uuid.New().String(),
}
r1, err := serv.Register(d1)
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.True(t, r1.Success)
r3, err := serv.Radar(d1.Name)
2020-06-05 18:09:22 +01:00
assert.NoError(t, err)
assert.True(t, r3.Success)
}
2020-06-05 22:23:01 +01:00
func TestServer_Rover(t *testing.T) {
d1 := rove.RegisterData{
2020-06-05 22:23:01 +01:00
Name: uuid.New().String(),
}
r1, err := serv.Register(d1)
2020-06-05 22:23:01 +01:00
assert.NoError(t, err)
assert.True(t, r1.Success)
r3, err := serv.Rover(d1.Name)
2020-06-05 22:23:01 +01:00
assert.NoError(t, err)
assert.True(t, r3.Success)
}