public void CardGroup_ShouldOrderCardsOldestFirstForView() { // Arrange var regex = new Regex("Created (.*) days ago"); Mock <IRepository> mock = new Mock <IRepository>(); mock.SetupGet(x => x.ToDos).Returns(getMockData()); var viewComponent = new CardGroupViewComponent(mock.Object); var urlHelper = new Mock <IUrlHelper>(); urlHelper.Setup(o => o.Action(It.IsAny <UrlActionContext>())).Returns("action/controller"); viewComponent.Url = urlHelper.Object; //Act var componentResult = viewComponent.Invoke(3) as ViewViewComponentResult; var model = (componentResult.ViewData.Model as IEnumerable <CardViewModel>).ToList(); //Assert for (int i = 0; i < model.Count; i++) { var card = model[i]; var cardMatch = regex.Match(card.ActionDescription).Groups.Skip(1).First().Value; var cardDay = int.Parse(cardMatch); foreach (var item in model.Skip(i)) { var itemMatch = regex.Match(item.ActionDescription).Groups.Skip(1).First().Value; var itemDay = int.Parse(itemMatch); Assert.True(cardDay >= itemDay); } } }
public void Component_ShouldGet4ToDoItemsWhichAreTheOldest() { // Assemble var fakeData = new List <ToDo> { new ToDo { Title = "Oldest", Created = new DateTime(1990, 10, 1) }, new ToDo { Title = "2nd Oldest", Created = new DateTime(1990, 10, 2) }, new ToDo { Title = "3rd Oldest", Created = new DateTime(1990, 10, 3) }, new ToDo { Title = "4th Oldest", Created = new DateTime(1990, 10, 4) }, new ToDo { Title = "Youngest", Created = new DateTime(2020, 10, 1) } }; Mock <IRepository> mockRepository = new Mock <IRepository>(); mockRepository.SetupGet(x => x.ToDos) .Returns(fakeData); IRepository repository = mockRepository.Object; var component = new CardGroupViewComponent(repository); // Act var result = component.Invoke() as ViewViewComponentResult; // Assert var viewModel = result.ViewData.Model as IEnumerable <CardViewModel>; Assert.Contains(viewModel, x => x.Title == "Oldest"); Assert.Contains(viewModel, x => x.Title == "2nd Oldest"); Assert.Contains(viewModel, x => x.Title == "3rd Oldest"); Assert.Contains(viewModel, x => x.Title == "4th Oldest"); Assert.Equal(4, viewModel.Count()); }
public void CardGroup_ShouldGetRequestedCountForView() { // Arrange var viewComponent = new CardGroupViewComponent(); var urlHelper = new Mock <IUrlHelper>(); urlHelper.Setup(o => o.Action(It.IsAny <UrlActionContext>())).Returns("action/controller"); viewComponent.Url = urlHelper.Object; //Act var componentResult = viewComponent.Invoke(3) as ViewViewComponentResult; var model = componentResult.ViewData.Model as IEnumerable <CardViewModel>; //Assert Assert.Equal(3, model.Count()); }