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(); }