public void Should_Return_Ok_When_Archive_With_Manager()
        {
            // Arrange
            var logId          = 1;
            var fakes          = new Fakes();
            var fakeHttp       = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository = fakes.FakeLogRepository().Object;
            var fakeUserRepo   = fakes.FakeUserRepository().Object;
            var hashService    = new HashService();
            var userService    = new UserService(fakes.Mapper, fakeHttp, fakeUserRepo, hashService);
            var logService     = new LogService(fakes.Mapper, fakeRepository, userService);

            // Act
            var controller = new LogController(fakes.Mapper, logService);
            var actual     = controller.Archive(logId);

            // Assert
            Assert.NotNull(actual);
            Assert.IsType <ObjectResult>(actual.Result);

            var result = actual.Result as ObjectResult;

            Assert.NotNull(result.Value);
            Assert.Equal(200, result.StatusCode); // Ok
            Assert.IsType <Response>(result.Value);
        }
        public void Should_Return_Forbidden_When_Archive_Without_Authorization()
        {
            // Arrange
            var logId          = 1;
            var userId         = 3; // User with id 3 isn't owner of the log with id 1
            var fakes          = new Fakes();
            var fakeHttp       = fakes.FakeHttpContextAccessor(false, userId).Object;
            var fakeRepository = fakes.FakeLogRepository().Object;
            var fakeUserRepo   = fakes.FakeUserRepository().Object;
            var hashService    = new HashService();
            var userService    = new UserService(fakes.Mapper, fakeHttp, fakeUserRepo, hashService);
            var logService     = new LogService(fakes.Mapper, fakeRepository, userService);

            // Act
            var controller = new LogController(fakes.Mapper, logService);
            var actual     = controller.Archive(logId);

            // Assert
            Assert.NotNull(actual);
            Assert.IsType <ObjectResult>(actual.Result);

            var result = actual.Result as ObjectResult;

            Assert.NotNull(result.Value);
            Assert.Equal(403, result.StatusCode); // Forbidden
            Assert.IsType <Response>(result.Value);
        }
        public void Should_Return_Ok_When_Post_With_Manager_And_Specified_UserId()
        {
            // Arrange
            var userId         = 1;
            var fakes          = new Fakes();
            var fakeHttp       = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository = fakes.FakeLogRepository().Object;
            var fakeUserRepo   = fakes.FakeUserRepository().Object;
            var hashService    = new HashService();
            var userService    = new UserService(fakes.Mapper, fakeHttp, fakeUserRepo, hashService);
            var logService     = new LogService(fakes.Mapper, fakeRepository, userService);

            var request = fakes.Get <CreateLogRequest>().First();

            request.UserId = userId;

            // Act
            var controller = new LogController(fakes.Mapper, logService);
            var actual     = controller.Post(request);

            // Assert
            Assert.NotNull(actual);
            Assert.IsType <ObjectResult>(actual.Result);

            var result = actual.Result as ObjectResult;

            Assert.NotNull(result.Value);
            Assert.Equal(200, result.StatusCode); // Ok
            Assert.IsType <Response>(result.Value);
        }
        public void Should_Return_NotFound_When_Delete_With_An_Incorrect_Id()
        {
            // Arrange
            var logId          = 9999;
            var fakes          = new Fakes();
            var fakeHttp       = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository = fakes.FakeLogRepository().Object;
            var fakeUserRepo   = fakes.FakeUserRepository().Object;
            var hashService    = new HashService();
            var userService    = new UserService(fakes.Mapper, fakeHttp, fakeUserRepo, hashService);
            var logService     = new LogService(fakes.Mapper, fakeRepository, userService);

            // Act
            var controller = new LogController(fakes.Mapper, logService);
            var actual     = controller.Delete(logId);

            // Assert
            Assert.NotNull(actual);
            Assert.IsType <ObjectResult>(actual.Result);

            var result = actual.Result as ObjectResult;

            Assert.NotNull(result.Value);
            Assert.Equal(404, result.StatusCode); // Not Found
            Assert.IsType <Response>(result.Value);
        }
Exemplo n.º 5
0
        public void Should_Return_User_When_Update_With_Manager()
        {
            // Arrange
            var fakes              = new Fakes();
            var fakeHttp           = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository     = fakes.FakeLogRepository().Object;
            var fakeUserRepository = fakes.FakeUserRepository().Object;
            var hashService        = new HashService();
            var userService        = new UserService(fakes.Mapper, fakeHttp, fakeUserRepository, hashService);

            var request = fakes.Get <UpdateLogRequest>().First();

            request.Title = "Updated Title";

            var log = fakes.Get <Log>().First();

            log.Title = request.Title;
            var response = fakes.Mapper.Map <LogResponse>(log);
            var expected = Responses.OkResponse(null, response);

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.Update(log.Id, request).Result;

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new LogResponseComparer());
        }
Exemplo n.º 6
0
        public void Should_Return_Log_When_Archive_With_Manager(int logId)
        {
            // Arrange
            var fakes              = new Fakes();
            var fakeHttp           = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository     = fakes.FakeLogRepository().Object;
            var fakeUserRepository = fakes.FakeUserRepository().Object;
            var hashService        = new HashService();
            var userService        = new UserService(fakes.Mapper, fakeHttp, fakeUserRepository, hashService);

            var log = fakeRepository.GetById(logId).Result;

            log.Archived = !log.Archived; // Should change log archiving state
            var response = fakes.Mapper.Map <LogResponse>(log);
            var expected = Responses.OkResponse(null, response);

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.Archive(logId).Result;

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new LogResponseComparer());
        }
Exemplo n.º 7
0
        public void Should_Return_Log_When_Update_With_Owner(int logId, int loggedUserId)
        {
            // Arrange
            var fakes              = new Fakes();
            var fakeHttp           = fakes.FakeHttpContextAccessor(false, loggedUserId).Object;
            var fakeRepository     = fakes.FakeLogRepository().Object;
            var fakeUserRepository = fakes.FakeUserRepository().Object;
            var hashService        = new HashService();
            var userService        = new UserService(fakes.Mapper, fakeHttp, fakeUserRepository, hashService);

            var log = fakeRepository.GetById(logId).Result;

            log.Title = "Updated Title";

            var request  = fakes.Mapper.Map <UpdateLogRequest>(log);
            var response = fakes.Mapper.Map <LogResponse>(log);
            var expected = Responses.OkResponse(null, response);

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.Update(logId, request).Result;

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new LogResponseComparer());
        }
Exemplo n.º 8
0
        public void Should_Return_Log_When_Create_With_Manager_And_Specified_UserId()
        {
            // Arrange
            var fakes              = new Fakes();
            var fakeHttp           = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository     = fakes.FakeLogRepository().Object;
            var fakeUserRepository = fakes.FakeUserRepository().Object;
            var hashService        = new HashService();
            var userService        = new UserService(fakes.Mapper, fakeHttp, fakeUserRepository, hashService);

            var request = fakes.Get <CreateLogRequest>().First();
            var log     = fakes.Get <Log>().First();

            var response = fakes.Mapper.Map <LogResponse>(log);

            response.Id       = 999;                  // Mocked id when creating a new log
            response.Archived = false;                // By default, log is created as unarchived
            response.UserId   = request.UserId.Value; // UserId were specified, so it should be equal to the UserId in request

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.Create(request).Result;

            response.CreatedAt = (actual.Data as LogResponse).CreatedAt;
            var expected = Responses.OkResponse(null, response);

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new LogResponseComparer());
        }
Exemplo n.º 9
0
        public void Should_Return_All_User_Archived_Logs_When_GetArchivedLogsByUserId_With_Manager(int userId)
        {
            // Arrange
            var loggedUserId   = userId;
            var fakes          = new Fakes();
            var fakeHttp       = fakes.FakeHttpContextAccessor(false, loggedUserId).Object;
            var fakeRepository = fakes.FakeLogRepository().Object;
            var fakeUserRepo   = fakes.FakeUserRepository().Object;
            var hashService    = new HashService();
            var userService    = new UserService(fakes.Mapper, fakeHttp, fakeUserRepo, hashService);

            var logs     = fakeRepository.GetAllArchivedByUserId(userId).Result;
            var response = fakes.Mapper.Map <LogResponse[]>(logs);
            var expected = Responses.OkResponse(null, response);

            // Act
            var service      = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual       = service.GetArchivedLogsByUserId(userId).Result;
            var logResponses = actual.Data as LogResponse[];

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new LogResponseListComparer());
            Array.ForEach(logResponses, log => Assert.True(log.Archived));
        }
Exemplo n.º 10
0
        public void Should_Return_Ok_When_Delete_With_Manager(int logId)
        {
            // Arrange
            var fakes              = new Fakes();
            var fakeHttp           = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository     = fakes.FakeLogRepository().Object;
            var fakeUserRepository = fakes.FakeUserRepository().Object;
            var hashService        = new HashService();
            var userService        = new UserService(fakes.Mapper, fakeHttp, fakeUserRepository, hashService);

            var expected = Responses.OkResponse("Log deletado");

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.Delete(logId).Result;

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new ResponseComparer());
        }
Exemplo n.º 11
0
        public void Should_Return_NotFound_When_Archive_With_An_Incorrect_Id()
        {
            // Arrange
            var logId              = 9999;
            var fakes              = new Fakes();
            var fakeHttp           = fakes.FakeHttpContextAccessor(true).Object;
            var fakeRepository     = fakes.FakeLogRepository().Object;
            var fakeUserRepository = fakes.FakeUserRepository().Object;
            var hashService        = new HashService();
            var userService        = new UserService(fakes.Mapper, fakeHttp, fakeUserRepository, hashService);

            var expected = Responses.NotFoundResponse("Log não encontrado");

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.Archive(logId).Result;

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new ResponseComparer());
        }
Exemplo n.º 12
0
        public void Should_Return_Forbidden_When_Delete_Without_Authorization(int logId)
        {
            // Arrange
            var fakes              = new Fakes();
            var loggedUserId       = 0; // Doesn't exist user with id 0
            var fakeHttp           = fakes.FakeHttpContextAccessor(false, loggedUserId).Object;
            var fakeRepository     = fakes.FakeLogRepository().Object;
            var fakeUserRepository = fakes.FakeUserRepository().Object;
            var hashService        = new HashService();
            var userService        = new UserService(fakes.Mapper, fakeHttp, fakeUserRepository, hashService);

            var expected = Responses.ForbiddenResponse(
                "Não é possível deletar um log de outro usuário");

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.Delete(logId).Result;

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new ResponseComparer());
        }
Exemplo n.º 13
0
        public void Should_Return_Forbidden_When_GetArchivedLogsByUserId_Without_Authorization(int userId)
        {
            // Arrange
            var loggedUserId   = userId - 1;
            var fakes          = new Fakes();
            var fakeHttp       = fakes.FakeHttpContextAccessor(false, loggedUserId).Object;
            var fakeRepository = fakes.FakeLogRepository().Object;
            var fakeUserRepo   = fakes.FakeUserRepository().Object;
            var hashService    = new HashService();
            var userService    = new UserService(fakes.Mapper, fakeHttp, fakeUserRepo, hashService);

            var expected = Responses.ForbiddenResponse(
                "Não é possível obter logs de outro usuário");

            // Act
            var service = new LogService(fakes.Mapper, fakeRepository, userService);
            var actual  = service.GetArchivedLogsByUserId(userId).Result;

            // Assert
            Assert.IsType <Response>(actual);
            Assert.NotNull(actual);
            Assert.Equal(expected, actual, new ResponseComparer());
        }