Exemplo n.º 1
0
        public void TestAddCommentToLog_RepositoryReturnsLog_ShouldAddCommentToLogEntries(int logId, string username)
        {
            // Arrange
            var user = new User {
                UserName = username
            };

            var entry = new Comment {
                User = user
            };

            var lastEntry = new LogEntry();

            var log = new TrainingLog {
                User = user
            };

            log.LastLogEntry = lastEntry;

            var mockedLogRepository = new Mock <IRepository <TrainingLog> >();

            mockedLogRepository.Setup(r => r.GetById(It.IsAny <object>()))
            .Returns(log);

            var mockedUnitOfWork       = new Mock <IUnitOfWork>();
            var mockedLogFactory       = new Mock <ITrainingLogFactory>();
            var mockedUserService      = new Mock <IUserService>();
            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var service = new LogsService(mockedLogRepository.Object,
                                          mockedUnitOfWork.Object,
                                          mockedLogFactory.Object,
                                          mockedUserService.Object,
                                          mockedDateTimeProvider.Object);

            // Act
            service.AddCommentToLog(logId, entry);

            // Assert
            CollectionAssert.Contains(log.LastLogEntry.Comments, entry);
        }
Exemplo n.º 2
0
        public void TestAddCommentToLog_RepositoryReturnsNull_ShouldNotCallUnitOfWorkCommit(int logId)
        {
            // Arrange
            var entry = new Comment();

            var mockedLogRepository    = new Mock <IRepository <TrainingLog> >();
            var mockedUnitOfWork       = new Mock <IUnitOfWork>();
            var mockedLogFactory       = new Mock <ITrainingLogFactory>();
            var mockedUserService      = new Mock <IUserService>();
            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var service = new LogsService(mockedLogRepository.Object,
                                          mockedUnitOfWork.Object,
                                          mockedLogFactory.Object,
                                          mockedUserService.Object,
                                          mockedDateTimeProvider.Object);

            // Act
            service.AddCommentToLog(logId, entry);

            // Assert
            mockedUnitOfWork.Verify(u => u.Commit(), Times.Never);
        }
Exemplo n.º 3
0
        public void TestAddCommentToLog_ShouldCallRepositoryGetByIdCorrectly(int logId)
        {
            // Arrange
            var entry = new Comment();

            var mockedLogRepository    = new Mock <IRepository <TrainingLog> >();
            var mockedUnitOfWork       = new Mock <IUnitOfWork>();
            var mockedLogFactory       = new Mock <ITrainingLogFactory>();
            var mockedUserService      = new Mock <IUserService>();
            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var service = new LogsService(mockedLogRepository.Object,
                                          mockedUnitOfWork.Object,
                                          mockedLogFactory.Object,
                                          mockedUserService.Object,
                                          mockedDateTimeProvider.Object);

            // Act
            service.AddCommentToLog(logId, entry);

            // Assert
            mockedLogRepository.Verify(r => r.GetById(logId), Times.Once);
        }