예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }