public void UnreadMessages()
        {
            // Arrange
            Mock <User>    userMock = new Mock <User>();
            Mock <Message> msgMock  = new Mock <Message>();

            msgMock.Expect(m => m.Time)
            .Returns(DateTime.Now).AtMostOnce().Verifiable();
            msgMock.Expect(m => m.Subject)
            .Returns("Test Subject").AtMostOnce().Verifiable();
            msgMock.Expect(m => m.SenderUser.UserName)
            .Returns("From Username").AtMostOnce().Verifiable();
            msgMock.Expect(m => m.MessageId)
            .Returns(1).AtMostOnce().Verifiable();
            userMock.Expect(u => u.GetUnreadMessages())
            .Returns(new Message[] { msgMock.Object }).AtMostOnce().Verifiable();
            Mock <GameManager>      managerMock = new Mock <GameManager>(userMock.Object);
            CommunicationController controller  = new CommunicationController(managerMock.Object);

            // Act
            ActionResult result = controller.UnreadMessages(0);

            // Assert
            Assert.That(result, Is.TypeOf(typeof(JsonResult)), "Should return a JSON result");

            managerMock.Verify();
        }