public override Task OnDisconnected(bool stopCalled)
 {
     lock (_dictConnIdToBallId)
     {
         if (_dictConnIdToBallId.ContainsKey(Context.ConnectionId))
         {
             int id = _dictConnIdToBallId[Context.ConnectionId];
             _positionCalculator.RemoveBall(id);
         }
     }
     return(base.OnDisconnected(stopCalled));
 }
        public void TestRemoveBall()
        {
            IPositionCalculator pc = PositionCalculatorFactory.Instance.GetPositionCalculator();
            int id = pc.AddBall();

            int nBall1 = pc.GetBallCount();

            pc.RemoveBall(id);

            int nBall2 = pc.GetBallCount();

            Assert.Equal(1, nBall1 - nBall2);
        }