2020-06-11 18:16:11 +01:00
|
|
|
// +build integration
|
|
|
|
|
2020-06-10 17:39:42 +01:00
|
|
|
package internal
|
2020-06-05 17:59:14 +01:00
|
|
|
|
|
|
|
import (
|
2020-06-06 00:36:05 +01:00
|
|
|
"os"
|
2020-06-05 17:59:14 +01:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/google/uuid"
|
2020-06-06 12:45:45 +01:00
|
|
|
"github.com/mdiluz/rove/pkg/game"
|
2020-06-06 00:36:05 +01:00
|
|
|
"github.com/mdiluz/rove/pkg/rove"
|
2020-06-05 17:59:14 +01:00
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
2020-06-11 18:16:11 +01:00
|
|
|
const (
|
2020-06-12 17:54:47 +01:00
|
|
|
defaultAddress = "localhost:8080"
|
2020-06-11 18:16:11 +01:00
|
|
|
)
|
2020-06-06 00:36:05 +01:00
|
|
|
|
2020-06-11 18:16:11 +01:00
|
|
|
var serv = func() rove.Server {
|
|
|
|
var address = os.Getenv("ROVE_SERVER_ADDRESS")
|
|
|
|
if len(address) == 0 {
|
|
|
|
address = defaultAddress
|
2020-06-06 11:52:12 +01:00
|
|
|
}
|
2020-06-11 18:16:11 +01:00
|
|
|
return rove.Server(address)
|
|
|
|
}()
|
2020-06-05 17:59:14 +01:00
|
|
|
|
2020-06-05 18:06:16 +01:00
|
|
|
func TestServer_Status(t *testing.T) {
|
2020-06-06 00:36:05 +01:00
|
|
|
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))
|
2020-06-05 17:59:14 +01:00
|
|
|
}
|
|
|
|
|
2020-06-05 18:06:16 +01:00
|
|
|
func TestServer_Register(t *testing.T) {
|
2020-06-06 00:36:05 +01:00
|
|
|
d1 := rove.RegisterData{
|
2020-06-05 17:59:14 +01:00
|
|
|
Name: uuid.New().String(),
|
|
|
|
}
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err := serv.Register(d1)
|
2020-06-05 18:09:22 +01:00
|
|
|
assert.NoError(t, err)
|
2020-06-05 17:59:14 +01:00
|
|
|
|
2020-06-06 00:36:05 +01:00
|
|
|
d2 := rove.RegisterData{
|
2020-06-05 17:59:14 +01:00
|
|
|
Name: uuid.New().String(),
|
|
|
|
}
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err = serv.Register(d2)
|
2020-06-05 18:09:22 +01:00
|
|
|
assert.NoError(t, err)
|
2020-06-05 17:59:14 +01:00
|
|
|
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err = serv.Register(d1)
|
|
|
|
assert.Error(t, err)
|
2020-06-05 17:59:14 +01:00
|
|
|
}
|
2020-06-05 18:06:16 +01:00
|
|
|
|
2020-06-05 22:29:51 +01:00
|
|
|
func TestServer_Command(t *testing.T) {
|
2020-06-06 00:36:05 +01:00
|
|
|
d1 := rove.RegisterData{
|
2020-06-05 18:06:16 +01:00
|
|
|
Name: uuid.New().String(),
|
|
|
|
}
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err := serv.Register(d1)
|
2020-06-05 18:09:22 +01:00
|
|
|
assert.NoError(t, err)
|
2020-06-05 18:06:16 +01:00
|
|
|
|
2020-06-06 00:36:05 +01:00
|
|
|
c := rove.CommandData{
|
2020-06-06 12:45:45 +01:00
|
|
|
Commands: []game.Command{
|
2020-06-05 18:06:16 +01:00
|
|
|
{
|
2020-06-06 12:45:45 +01:00
|
|
|
Command: game.CommandMove,
|
2020-06-05 18:06:16 +01:00
|
|
|
Bearing: "N",
|
|
|
|
Duration: 1,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err = serv.Command(d1.Name, c)
|
2020-06-05 18:09:22 +01:00
|
|
|
assert.NoError(t, err)
|
2020-06-05 18:06:16 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestServer_Radar(t *testing.T) {
|
2020-06-06 00:36:05 +01:00
|
|
|
d1 := rove.RegisterData{
|
2020-06-05 18:06:16 +01:00
|
|
|
Name: uuid.New().String(),
|
|
|
|
}
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err := serv.Register(d1)
|
2020-06-05 18:09:22 +01:00
|
|
|
assert.NoError(t, err)
|
2020-06-05 18:06:16 +01:00
|
|
|
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err = serv.Radar(d1.Name)
|
2020-06-05 18:09:22 +01:00
|
|
|
assert.NoError(t, err)
|
2020-06-05 18:06:16 +01:00
|
|
|
}
|
2020-06-05 22:23:01 +01:00
|
|
|
|
|
|
|
func TestServer_Rover(t *testing.T) {
|
2020-06-06 00:36:05 +01:00
|
|
|
d1 := rove.RegisterData{
|
2020-06-05 22:23:01 +01:00
|
|
|
Name: uuid.New().String(),
|
|
|
|
}
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err := serv.Register(d1)
|
2020-06-05 22:23:01 +01:00
|
|
|
assert.NoError(t, err)
|
|
|
|
|
2020-06-12 18:58:38 +01:00
|
|
|
_, err = serv.Rover(d1.Name)
|
2020-06-05 22:23:01 +01:00
|
|
|
assert.NoError(t, err)
|
|
|
|
}
|