Exemplo n.º 1
0
        public void Get_ShouldReturnSuccess()
        {
            var testDbMessage = TestData.CreateDbMessage("2018MESSAGE-1", "test description", 0);

            context.Message.Add(testDbMessage);
            context.SaveChanges();

            var result = controller.GetMessage(testDbMessage.Id) as ObjectResult;

            result.Should().BeOfType <OkObjectResult>();
            result.StatusCode.Should().Be(200);
            var model = result.Value as Models.Message;

            model.Title.Should().Be("2018MESSAGE-1");
        }
Exemplo n.º 2
0
        public async Task GetMessage_ValidMime()
        {
            DateTime startDate = DateTime.Now;

            DbModel.Message testMessage1 = await GetTestMessage1();

            TestMessagesRepository messagesRepository = new TestMessagesRepository(testMessage1);
            MessagesController     messagesController = new MessagesController(messagesRepository);

            ApiModel.Message result = messagesController.GetMessage(testMessage1.Id);

            Assert.Null(result.MimeParseError);
            Assert.Equal(testMessage1.Id, result.Id);
            Assert.InRange(result.ReceivedDate, startDate, DateTime.Now);
            Assert.Equal("*****@*****.**", result.From);
            Assert.Equal("*****@*****.**", result.To);
            Assert.Equal("*****@*****.**", result.Bcc);
            Assert.Equal("*****@*****.**", result.Cc);
            Assert.Equal("subject", result.Subject);

            var allParts = result.Parts.Flatten(p => p.ChildParts).ToList();

            Assert.Equal(6, allParts.Count);


            Assert.All(allParts, p => {
                Assert.Equal(testMessage1.Id, p.MessageId);
                Assert.NotNull(p.Id);
                Assert.NotEqual("", p.Id);
            });

            //All parts have a unique Id
            Assert.Equal(allParts.Count, allParts.Select(p => p.Id).Distinct().Count());
        }
Exemplo n.º 3
0
        public async Task GetMessage_ExistingMessageIdPassed_ReturnsOkResult()
        {
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
            }));


            var repositoryMock  = new Mock <IRepositoryWrapper>();
            var messageToReturn = new Message
            {
                Id = 1
            };

            repositoryMock.Setup(r => r.MessageRepository.GetMessageAsync(1)).ReturnsAsync(() => messageToReturn);
            var mapperMock = new Mock <IMapper>();

            var controllerMock = new MessagesController(repositoryMock.Object, mapperMock.Object);

            controllerMock.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };

            var result = await controllerMock.GetMessage(1, 1) as OkObjectResult;

            Assert.IsType <OkObjectResult>(result);
            Assert.Equal(messageToReturn, result.Value);
        }
Exemplo n.º 4
0
        public async Task GetMessage_NotExistingMessageIdPassed_ReturnsNotFound()
        {
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
            }));


            var repositoryMock = new Mock <IRepositoryWrapper>();

            repositoryMock.Setup(r => r.MessageRepository.GetMessageAsync(0)).ReturnsAsync(() => null);
            var mapperMock = new Mock <IMapper>();

            var controllerMock = new MessagesController(repositoryMock.Object, mapperMock.Object);

            controllerMock.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };

            var result = await controllerMock.GetMessage(1, 0);

            Assert.IsType <NotFoundResult>(result);
        }
Exemplo n.º 5
0
 public void GetMessage_ShouldReturnHelloWorldFirst()
 {
     using (var context = GetContextWithData())
     {
         MessagesController    controller = new MessagesController(context);
         IEnumerable <Message> results    = controller.GetMessage();
         Assert.NotNull(results);
         Assert.IsAssignableFrom <IEnumerable <Message> >(results);
         Assert.Equal("Hello World", results.Select(x => x.Text).FirstOrDefault());
     }
 }
Exemplo n.º 6
0
        public void GetMessage_ReturnsBadRequestObjectResult_WhenTheMessageIdIsInvalid()
        {
            //Arrange
            var controller = new MessagesController(_loggerMock.Object, _mockMessagesService.Object, _mockUserService.Object);

            //Act
            var result = controller.GetMessage(ConstIds.InvalidGuid);

            //Assert
            var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result.Result);

            Assert.Equal($"{ConstIds.InvalidGuid} is not valid guid.", badRequestObjectResult.Value);
        }
Exemplo n.º 7
0
        public async Task GetMessages_ShouldReturnNull()
        {
            int messageId = GetMessage().MessageId;

            _messageRepo.Setup(repo => repo.FindMessageAsync(messageId))
            .Returns(Task.FromResult((Message)null));

            var controller   = new MessagesController(_messageRepo.Object);
            var actionResult = await controller.GetMessage(messageId);

            var result = actionResult.Value;

            Assert.IsNull(result);
        }
Exemplo n.º 8
0
        public async Task GetPartContent()
        {
            DbModel.Message testMessage1 = await GetTestMessage1();

            TestMessagesRepository messagesRepository = new TestMessagesRepository(testMessage1);
            MessagesController     messagesController = new MessagesController(messagesRepository);

            var parts = messagesController.GetMessage(testMessage1.Id).Parts.Flatten(p => p.ChildParts).SelectMany(p => p.Attachments);

            var part = parts.First(p => p.FileName == "file2");

            var result       = messagesController.GetPartContent(testMessage1.Id, part.Id);
            var stringResult = await new StreamReader(result.FileStream, Encoding.UTF8).ReadToEndAsync();

            Assert.Equal(testMessage1File2Content, stringResult);
        }
        public void Get_WhenAMessageIsFound_ReturnsOkResult()
        {
            // Arrange
            var messageId = Guid.NewGuid();

            _repository.GetMessageByMessageId(messageId).Returns(new MessageResponse {
                MessageId = messageId, ReceiverPhoneNumber = "0412345678"
            });

            // Action
            IHttpActionResult actionResult = _controller.GetMessage(messageId);
            var conNegResult = actionResult as OkNegotiatedContentResult <MessageResponse>;

            // Assert
            Assert.IsNotNull(conNegResult.Content);
        }
Exemplo n.º 10
0
        public void Get_ShouldReturnFail()
        {
            var mockContext = new Mock <HubDbContext>(options);

            mockContext.Setup(m => m.Message).Throws(new Exception());
            var testDbMessage = TestData.CreateDbMessage("1", "test description", 0);

            context.Message.Add(testDbMessage);
            context.SaveChanges();
            var badController = new MessagesController(mockContext.Object, logger.Object, mapper);

            var result = badController.GetMessage(testDbMessage.Id) as ObjectResult;

            result.Should().BeOfType <BadRequestObjectResult>();
            result.StatusCode.Should().Be(400);
        }
Exemplo n.º 11
0
        public void GetMessage_ReturnsInternalServerErrorResult_WhenExceptionThrownInService()
        {
            //Arrange
            _mockMessagesService.Setup(Service => Service.GetMessage(It.IsAny <Guid>()))
            .Throws(new ArgumentNullException(nameof(Guid)))
            .Verifiable();

            var controller = new MessagesController(_loggerMock.Object, _mockMessagesService.Object, _mockUserService.Object);

            //Act
            var result = controller.GetMessage(ConstIds.ExampleUserId);
            //Assert
            var internalServerErrorResult = Assert.IsType <StatusCodeResult>(result.Result);

            Assert.Equal(StatusCodes.Status500InternalServerError, internalServerErrorResult.StatusCode);
            _mockMessagesService.Verify();
        }
Exemplo n.º 12
0
        public async void GetMessageInt_ShouldReturnGoodbyeWorldSecond()
        {
            int id = 2;

            using (var context = GetContextWithData())
            {
                MessagesController controller = new MessagesController(context);
                IActionResult      response   = await controller.GetMessage(id);

                Assert.NotNull(response);
                OkObjectResult result = Assert.IsType <OkObjectResult>(response);
                Assert.Equal((int)HttpStatusCode.OK, result.StatusCode);
                Message msg = Assert.IsType <Message>(result.Value);
                Assert.Equal(id, msg.MessageID);
                Assert.Equal("Goodbye World", msg.Text);
            }
        }
Exemplo n.º 13
0
        public void GetMessage_ReturnsOkObjectResult_WithMessageData()
        {
            //Arrange
            var message = _fixture.Create <MessageDto>();

            _mockMessagesService.Setup(Service => Service.GetMessage(It.IsAny <Guid>()))
            .Returns(message)
            .Verifiable();

            var controller = new MessagesController(_loggerMock.Object, _mockMessagesService.Object, _mockUserService.Object);

            //Act
            var result = controller.GetMessage(ConstIds.ExampleUserId);

            //Assert
            var actionResult = Assert.IsType <OkObjectResult>(result.Result);
            var model        = Assert.IsType <MessageDto>(actionResult.Value);

            Assert.Equal(message, model);
            _mockMessagesService.Verify();
        }