Skip to content

Commit

Permalink
use require package to abort a test
Browse files Browse the repository at this point in the history
use NoError


fix


added require to vendor
  • Loading branch information
alexey-kremsa-globant committed Jul 7, 2020
1 parent 42e4c9b commit 6146d8d
Show file tree
Hide file tree
Showing 9 changed files with 2,936 additions and 110 deletions.
153 changes: 43 additions & 110 deletions pkg/sdkserver/sdkserver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (
agruntime "agones.dev/agones/pkg/util/runtime"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/net/context"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
Expand Down Expand Up @@ -333,9 +334,7 @@ func TestSidecarUpdateState(t *testing.T) {
t.Run(k, func(t *testing.T) {
m := agtesting.NewMocks()
sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
sc.gsState = agonesv1.GameServerStateReady

updated := false
Expand Down Expand Up @@ -375,9 +374,8 @@ func TestSidecarHealthLastUpdated(t *testing.T) {
m := agtesting.NewMocks()

sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

sc.health = agonesv1.Health{Disabled: false}
fc := clock.NewFakeClock(now)
sc.clock = fc
Expand Down Expand Up @@ -424,9 +422,7 @@ func TestSidecarUnhealthyMessage(t *testing.T) {

m := agtesting.NewMocks()
sc, err := NewSDKServer("test", "default", m.KubeClient, m.AgonesClient)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

m.AgonesClient.AddReactor("list", "gameservers", func(action k8stesting.Action) (bool, runtime.Object, error) {
gs := agonesv1.GameServer{
Expand Down Expand Up @@ -472,9 +468,8 @@ func TestSidecarHealthy(t *testing.T) {

m := agtesting.NewMocks()
sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

// manually set the values
sc.health = agonesv1.Health{FailureThreshold: 1}
sc.healthTimeout = 5 * time.Second
Expand Down Expand Up @@ -573,9 +568,8 @@ func TestSidecarHealthy(t *testing.T) {
func TestSidecarHTTPHealthCheck(t *testing.T) {
m := agtesting.NewMocks()
sc, err := NewSDKServer("test", "default", m.KubeClient, m.AgonesClient)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

now := time.Now().Add(time.Hour).UTC()
fc := clock.NewFakeClock(now)
// now we control time - so slow machines won't fail anymore
Expand Down Expand Up @@ -642,18 +636,14 @@ func TestSDKServerGetGameServer(t *testing.T) {
defer close(stop)

sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

sc.informerFactory.Start(stop)
assert.True(t, cache.WaitForCacheSync(stop, sc.gameServerSynced))
sc.gsWaitForSync.Done()

result, err := sc.GetGameServer(context.Background(), &sdk.Empty{})
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, fixture.ObjectMeta.Name, result.ObjectMeta.Name)
assert.Equal(t, fixture.ObjectMeta.Namespace, result.ObjectMeta.Namespace)
assert.Equal(t, string(fixture.Status.State), result.Status.State)
Expand All @@ -665,15 +655,11 @@ func TestSDKServerWatchGameServer(t *testing.T) {
agruntime.FeatureTestMutex.Lock()
defer agruntime.FeatureTestMutex.Unlock()
err := agruntime.ParseFeatures(string(agruntime.FeatureSDKWatchSendOnExecute) + "=false")
if err != nil {
assert.FailNow(t, "Can not parse FeatureSDKWatchSendOnExecute")
}
require.NoError(t, err, "Can not parse FeatureSDKWatchSendOnExecute")

m := agtesting.NewMocks()
sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Empty(t, sc.connectedStreams)

stream := newGameServerMockStream()
Expand Down Expand Up @@ -709,14 +695,10 @@ func TestSDKServerWatchGameServerFeatureSDKWatchSendOnExecute(t *testing.T) {
m.AgonesClient.AddWatchReactor("gameservers", k8stesting.DefaultWatchReactor(fakeWatch, nil))

err := agruntime.ParseFeatures(string(agruntime.FeatureSDKWatchSendOnExecute) + "=true")
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err, "Can not parse FeatureSDKWatchSendOnExecute")

sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Empty(t, sc.connectedStreams)

stop := make(chan struct{})
Expand Down Expand Up @@ -772,15 +754,11 @@ func TestSDKServerSendGameServerUpdate(t *testing.T) {
agruntime.FeatureTestMutex.Lock()
defer agruntime.FeatureTestMutex.Unlock()
err := agruntime.ParseFeatures(string(agruntime.FeatureSDKWatchSendOnExecute) + "=false")
if err != nil {
assert.FailNow(t, "Can not parse FeatureSDKWatchSendOnExecute")
}
require.NoError(t, err, "Can not parse FeatureSDKWatchSendOnExecute")

m := agtesting.NewMocks()
sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Empty(t, sc.connectedStreams)

stop := make(chan struct{})
Expand Down Expand Up @@ -813,9 +791,7 @@ func TestSDKServerUpdateEventHandler(t *testing.T) {
agruntime.FeatureTestMutex.Lock()
defer agruntime.FeatureTestMutex.Unlock()
err := agruntime.ParseFeatures(string(agruntime.FeatureSDKWatchSendOnExecute) + "=false")
if err != nil {
assert.FailNow(t, "Can not parse FeatureSDKWatchSendOnExecute")
}
require.NoError(t, err, "Can not parse FeatureSDKWatchSendOnExecute")

m := agtesting.NewMocks()
fakeWatch := watch.NewFake()
Expand All @@ -825,7 +801,7 @@ func TestSDKServerUpdateEventHandler(t *testing.T) {
defer close(stop)

sc, err := defaultSidecar(m)
assert.Nil(t, err)
require.NoError(t, err)

sc.informerFactory.Start(stop)
assert.True(t, cache.WaitForCacheSync(stop, sc.gameServerSynced))
Expand Down Expand Up @@ -885,9 +861,8 @@ func TestSDKServerReserveTimeoutOnRun(t *testing.T) {
})

sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

stop := make(chan struct{})
sc.informerFactory.Start(stop)
assert.True(t, cache.WaitForCacheSync(stop, sc.gameServerSynced))
Expand Down Expand Up @@ -1037,18 +1012,14 @@ func TestSDKServerPlayerCapacity(t *testing.T) {
defer agruntime.FeatureTestMutex.Unlock()

err := agruntime.ParseFeatures(string(agruntime.FeaturePlayerTracking) + "=true")
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err, "Can not parse FeaturePlayerTracking feature")

m := agtesting.NewMocks()
stop := make(chan struct{})
defer close(stop)

sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

m.AgonesClient.AddReactor("list", "gameservers", func(action k8stesting.Action) (bool, runtime.Object, error) {
gs := agonesv1.GameServer{
Expand Down Expand Up @@ -1098,9 +1069,7 @@ func TestSDKServerPlayerCapacity(t *testing.T) {
assert.NoError(t, err)

count, err := sc.GetPlayerCapacity(context.Background(), &alpha.Empty{})
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, int64(20), count.Count)

// on an update, confirm that the update hits the K8s api
Expand All @@ -1120,16 +1089,14 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) {
defer agruntime.FeatureTestMutex.Unlock()

err := agruntime.ParseFeatures(string(agruntime.FeaturePlayerTracking) + "=true")
assert.NoError(t, err)
require.NoError(t, err, "Can not parse FeaturePlayerTracking feature")

m := agtesting.NewMocks()
stop := make(chan struct{})
defer close(stop)

sc, err := defaultSidecar(m)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)

capacity := int64(3)
m.AgonesClient.AddReactor("list", "gameservers", func(action k8stesting.Action) (bool, runtime.Object, error) {
Expand Down Expand Up @@ -1176,49 +1143,35 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) {
assert.NoError(t, err)

count, err := sc.GetPlayerCount(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, int64(0), count.Count)

list, err := sc.GetConnectedPlayers(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Empty(t, list.List)

ok, err := sc.IsPlayerConnected(context.Background(), &alpha.PlayerID{PlayerID: "1"})
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.False(t, ok.Bool, "no player connected yet")

// sdk value should always be correct, even if we send more than one update per second.
for i := int64(0); i < capacity; i++ {
token := strconv.FormatInt(i, 10)
id := &alpha.PlayerID{PlayerID: token}
ok, err := sc.PlayerConnect(context.Background(), id)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.True(t, ok.Bool, "Player "+token+" should not yet be connected")

ok, err = sc.IsPlayerConnected(context.Background(), id)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.True(t, ok.Bool, "Player "+token+" should be connected")
}
count, err = sc.GetPlayerCount(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, capacity, count.Count)

list, err = sc.GetConnectedPlayers(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, []string{"0", "1", "2"}, list.List)

// on an update, confirm that the update hits the K8s api, only once
Expand Down Expand Up @@ -1249,27 +1202,19 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) {
token := strconv.FormatInt(i, 10)
id := &alpha.PlayerID{PlayerID: token}
ok, err := sc.PlayerDisconnect(context.Background(), id)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Truef(t, ok.Bool, "Player %s should be disconnected", token)

ok, err = sc.IsPlayerConnected(context.Background(), id)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Falsef(t, ok.Bool, "Player %s should be connected", token)
}
count, err = sc.GetPlayerCount(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, int64(1), count.Count)

list, err = sc.GetConnectedPlayers(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, []string{"2"}, list.List)

// on an update, confirm that the update hits the K8s api, only once
Expand All @@ -1291,43 +1236,31 @@ func TestSDKServerPlayerConnectAndDisconnect(t *testing.T) {

// last player is still there
ok, err = sc.IsPlayerConnected(context.Background(), &alpha.PlayerID{PlayerID: "2"})
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.True(t, ok.Bool, "Player 2 should be connected")

// finally, check idempotency of connect and disconnect
id := &alpha.PlayerID{PlayerID: "2"} // only one left behind
ok, err = sc.PlayerConnect(context.Background(), id)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.False(t, ok.Bool, "Player 2 should already be connected")
count, err = sc.GetPlayerCount(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, int64(1), count.Count)

// no longer there.
id.PlayerID = "0"
ok, err = sc.PlayerDisconnect(context.Background(), id)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.False(t, ok.Bool, "Player 2 should already be disconnected")
count, err = sc.GetPlayerCount(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, int64(1), count.Count)

agtesting.AssertNoEvent(t, m.FakeRecorder.Events)

list, err = sc.GetConnectedPlayers(context.Background(), e)
if err != nil {
assert.FailNow(t, err.Error())
}
require.NoError(t, err)
assert.Equal(t, []string{"2"}, list.List)
}

Expand Down
28 changes: 28 additions & 0 deletions vendor/github.com/stretchr/testify/require/doc.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 6146d8d

Please sign in to comment.