// GET: HalFeed public async Task <ActionResult> Index(int page = 1) { var messageService = new HalJsonMessageService <Message>( new SqlServerMessageRepository("server=.;database=scratchpad;trusted_connection=true;", "usp_StoreMessage", "usp_GetPageOfMessages", 10), new HalResourceAttributeExtrator(), new PageLinkBuilder()); var halPage = await messageService.GetPageAsync(page); var contentType = halPage.Headers["Content-Type"].DefaultIfEmpty("application/hal+json").FirstOrDefault(); return(Content(halPage.Content, contentType)); }
public void Arrange() { _messageRepository = new Mock <IMessageRepository>(); _messageRepository.Setup(r => r.RetreivePageAsync <TestMessage>(It.IsAny <int>())) .Returns(Task.FromResult(new SyndicationPage <TestMessage> { Messages = new[] { new TestMessage() }, PageNumber = 2, TotalNumberOfMessages = 100, TotalNumberOfPages = 10 })); _halResourceAttributeExtrator = new Mock <IHalResourceAttributeExtrator <TestMessage> >(); _halResourceAttributeExtrator.Setup(x => x.Extract(It.IsAny <TestMessage>())) .Returns(new HalResourceAttributes { Links = new Dictionary <string, string> { { "self", "me" } }, Properties = new Dictionary <string, string> { { "Id", "some-id" } } }); _halPageLinkBuilder = new Mock <IHalPageLinkBuilder>(); _halPageLinkBuilder.Setup(x => x.NextPage(It.IsAny <int>())).Returns("/nextpage"); _halPageLinkBuilder.Setup(x => x.PreviousPage(It.IsAny <int>())).Returns("/prevpage"); _halPageLinkBuilder.Setup(x => x.FirstPage(It.IsAny <int>())).Returns("/first"); _halPageLinkBuilder.Setup(x => x.LastPage(It.IsAny <int>())).Returns("/last"); _messageService = new HalJsonMessageService <TestMessage>(_messageRepository.Object, _halResourceAttributeExtrator.Object, _halPageLinkBuilder.Object); }