public void Start_NotifiesObserverWhenGameIsStarting() { var socket = new StubWebSocket(WebSocketState.Open); socket.IncomingJson.Enqueue(new JObject { { "type", MessageType.PlayerRegistered } }); socket.IncomingJson.Enqueue(new JObject { { "type", MessageType.GameStarting } }); var observer = new StubGameObserver(); var client = new SnakeClient(socket, observer); client.Start(new StubSnakeBot()); Assert.Equal(1, observer.GameStartCalls); }
public void Start_NotifiesObserverWhenSnakeHasDied() { var socket = new StubWebSocket(WebSocketState.Open); socket.IncomingJson.Enqueue(new JObject { { "type", MessageType.SnakeDead }, { "playerId", "snake-id" }, { "deathReason", "CollisionWithWall" }, }); var observer = new StubGameObserver(); var client = new SnakeClient(socket, observer); client.Start(new StubSnakeBot()); Assert.Equal(1, observer.SnakeDiedCalls); }
public void Start_NotifiesObserverWhenGameHasEnded() { var socket = new StubWebSocket(WebSocketState.Open); socket.IncomingJson.Enqueue(new JObject { { "type", MessageType.GameEnded }, { "map", _sampleMapJson } }); var observer = new StubGameObserver(); var client = new SnakeClient(socket, observer); client.Start(new StubSnakeBot()); Assert.Equal(observer.GameEndCalls, 1); }