public async Task Details_ReturnNotFoundViewResult_When_NoValidIdGiven()
        {
            // Arrange
            Document tempDoc = new Document
            {
                DocumentId   = 100000,
                DocumentName = "Meh"
            };
            Mock <IUserRepository> mockUserRepo = new Mock <IUserRepository>();

            Mock <IDocumentRepository> mockDocRepo = new Mock <IDocumentRepository>();

            mockDocRepo.Setup(repo => repo.GetDocumentByIdAsync(1))
            .ReturnsAsync(tempDoc);

            DocumentsController controller = new DocumentsController(mockUserRepo.Object,
                                                                     mockDocRepo.Object);

            // Act
            IActionResult result = await controller.Details(tempDoc.DocumentId);

            // Assert

            NotFoundResult viewResult = Assert.IsType <NotFoundResult>(result);
        }
        public async Task Details_ReturnViewResult_With_Document()
        {
            // Arrange
            Document tempDoc = new Document
            {
                DocumentId   = 1,
                DocumentName = "Meh"
            };
            Mock <IUserRepository> mockUserRepo = new Mock <IUserRepository>();

            Mock <IDocumentRepository> mockDocRepo = new Mock <IDocumentRepository>();

            mockDocRepo.Setup(repo => repo.GetDocumentByIdAsync(1))
            .ReturnsAsync(tempDoc);

            DocumentsController controller = new DocumentsController(mockUserRepo.Object,
                                                                     mockDocRepo.Object);

            // Act
            IActionResult result = await controller.Details(tempDoc.DocumentId);

            // Assert
            ViewResult viewResult = Assert.IsType <ViewResult>(result);
            Document   model      = Assert.IsAssignableFrom <Document>(
                viewResult.ViewData.Model);
        }