public void VisitedLessonsManagerShouldReadFromCookieCorrectly() { //Arrange var cookieCollection = new Mock <IRequestCookieCollection>(); cookieCollection.SetupGet(c => c["ContentfulVisitedLessons"]).Returns("lesson-x;lesson-y;lesson-z;"); var mockRequest = new Mock <HttpRequest>(); mockRequest.SetupGet(r => r.Cookies).Returns(cookieCollection.Object); var mockContext = new Mock <HttpContext>(); mockContext.SetupGet(c => c.Request).Returns(mockRequest.Object); var httpContextAccessor = new Mock <IHttpContextAccessor>(); httpContextAccessor.SetupGet(c => c.HttpContext).Returns(mockContext.Object); //Act var manager = new VisitedLessonsManager(httpContextAccessor.Object); //Assert Assert.Collection(manager.VisitedLessons, (l) => { Assert.Equal("lesson-x", l); }, (l) => { Assert.Equal("lesson-y", l); }, (l) => { Assert.Equal("lesson-z", l); } ); }
public void VisitedLessonsManagerShouldNotFailOnEmptyCookie() { //Arrange var cookieCollection = new Mock <IRequestCookieCollection>(); cookieCollection.SetupGet(c => c["ContentfulVisitedLessons"]).Returns(""); var mockRequest = new Mock <HttpRequest>(); mockRequest.SetupGet(r => r.Cookies).Returns(cookieCollection.Object); var mockContext = new Mock <HttpContext>(); mockContext.SetupGet(c => c.Request).Returns(mockRequest.Object); var httpContextAccessor = new Mock <IHttpContextAccessor>(); httpContextAccessor.SetupGet(c => c.HttpContext).Returns(mockContext.Object); //Act var manager = new VisitedLessonsManager(httpContextAccessor.Object); //Assert Assert.Empty(manager.VisitedLessons); }
public void VisitedLessonsManagerShouldAddVisitedLessonCorrectly() { //Arrange var cookieCollection = new Mock <IRequestCookieCollection>(); cookieCollection.SetupGet(c => c["ContentfulVisitedLessons"]).Returns("lesson-x;lesson-y;lesson-z;"); var responseCookies = new Mock <IResponseCookies>(); responseCookies.Setup(c => c.Append("ContentfulVisitedLessons", It.IsAny <string>(), It.IsAny <CookieOptions>())).Verifiable(); var mockRequest = new Mock <HttpRequest>(); mockRequest.SetupGet(r => r.Cookies).Returns(cookieCollection.Object); var mockResponse = new Mock <HttpResponse>(); mockResponse.SetupGet(c => c.Cookies).Returns(responseCookies.Object); var mockContext = new Mock <HttpContext>(); mockContext.SetupGet(c => c.Request).Returns(mockRequest.Object); mockContext.SetupGet(c => c.Response).Returns(mockResponse.Object); var httpContextAccessor = new Mock <IHttpContextAccessor>(); httpContextAccessor.SetupGet(c => c.HttpContext).Returns(mockContext.Object); var manager = new VisitedLessonsManager(httpContextAccessor.Object); //Act manager.AddVisitedLesson("lesson-bongo"); //Assert Assert.Collection(manager.VisitedLessons, (l) => { Assert.Equal("lesson-x", l); }, (l) => { Assert.Equal("lesson-y", l); }, (l) => { Assert.Equal("lesson-z", l); }, (l) => { Assert.Equal("lesson-bongo", l); } ); responseCookies.Verify(c => c.Append("ContentfulVisitedLessons", It.IsAny <string>(), It.IsAny <CookieOptions>()), Times.Once); }