public async Task PageShouldReturn404IfNoLessonWasFound() { //Arrange var courses = new ContentfulCollection <Course>(); courses.Items = new List <Course> { new Course { Slug = "somewhat-sluggish", Lessons = new List <Lesson>() } }; var client = new Mock <IContentfulClient>(); client.SetupGet(c => c.SerializerSettings).Returns(new JsonSerializerSettings()); client.Setup(c => c.GetEntries(It.IsAny <QueryBuilder <Course> >(), default(CancellationToken))) .Returns(Task.FromResult(courses)); var visitedLessons = new Mock <IVisitedLessonsManager>(); var breadcrumbsManager = new Mock <IBreadcrumbsManager>(); var viewlocalizer = new Mock <IViewLocalizer>(); viewlocalizer.SetupGet(c => c[It.IsAny <string>()]).Returns(new LocalizedHtmlString("something", "else")); var model = new LessonsModel(client.Object, visitedLessons.Object, breadcrumbsManager.Object, viewlocalizer.Object); model.TempData = new Mock <ITempDataDictionary>().Object; //Act var res = await model.OnGet("somewhat-sluggish", "real-slugger"); //Assert Assert.IsType <NotFoundResult>(res); }
public async Task PageShouldSelectCorrectCourseAndLessonBySlugs() { //Arrange var courses = new ContentfulCollection <Course>(); courses.Items = new List <Course> { new Course { Slug = "somewhat-sluggish", Lessons = new List <Lesson> { new Lesson { Sys = new SystemProperties { Id = "434" }, Slug = "real-slugger" } } } }; var client = new Mock <IContentfulClient>(); client.SetupGet(c => c.SerializerSettings).Returns(new JsonSerializerSettings()); client.Setup(c => c.GetEntries(It.IsAny <QueryBuilder <Course> >(), default(CancellationToken))) .Returns(Task.FromResult(courses)); var visitedLessons = new Mock <IVisitedLessonsManager>(); var breadcrumbsManager = new Mock <IBreadcrumbsManager>(); var viewlocalizer = new Mock <IViewLocalizer>(); var httpContext = new Mock <HttpContext>(); var modelState = new ModelStateDictionary(); var modelMetadataProvider = new EmptyModelMetadataProvider(); var actionContext = new ActionContext(httpContext.Object, new RouteData(), new PageActionDescriptor(), modelState); var viewData = new ViewDataDictionary(modelMetadataProvider, modelState); var pageContext = new PageContext(actionContext) { ViewData = viewData }; var model = new LessonsModel(client.Object, visitedLessons.Object, breadcrumbsManager.Object, viewlocalizer.Object); model.PageContext = pageContext; //Act var res = await model.OnGet("somewhat-sluggish", "real-slugger"); //Assert Assert.IsType <PageResult>(res); Assert.Equal("somewhat-sluggish", model.Course.Slug); Assert.Equal("real-slugger", model.SelectedLesson.Slug); }
public static LessonsModel TranslateAsLessons(this SqlDataReader reader, bool isList = false) { if (!isList) { if (!reader.HasRows) { return(null); } reader.Read(); } var item = new LessonsModel(); if (reader.IsColumnExists("Id")) { item.Id = SqlHelper.GetNullableInt32(reader, "Id"); } if (reader.IsColumnExists("Title")) { item.Title = SqlHelper.GetNullableString(reader, "Title"); } if (reader.IsColumnExists("Discription")) { item.Discription = SqlHelper.GetNullableString(reader, "Discription"); } if (reader.IsColumnExists("Chapter")) { item.Chapter = SqlHelper.GetNullableString(reader, "Chapter"); } if (reader.IsColumnExists("Text")) { item.Text = SqlHelper.GetNullableString(reader, "Text"); } if (reader.IsColumnExists("CurseId")) { item.CurseId = SqlHelper.GetNullableInt32(reader, "CurseId"); } return(item); }