public async System.Threading.Tasks.Task UpdateActionCallsCookieManagerWhenComparisonListClearedAsync() { var request = new Mock <HttpRequestBase>(MockBehavior.Strict); var response = new Mock <HttpResponseBase>(MockBehavior.Strict); var context = new Mock <HttpContextBase>(MockBehavior.Strict); context.SetupGet(x => x.Request).Returns(request.Object); context.SetupGet(x => x.Response).Returns(response.Object); var requestCookies = new HttpCookieCollection(); var listCookie = new SchoolComparisonListModel(); listCookie.BenchmarkSchools = new List <BenchmarkSchoolModel>() { new BenchmarkSchoolModel() { Urn = "123", Name = "test" } }; requestCookies.Add(new HttpCookie(CookieNames.COMPARISON_LIST, JsonConvert.SerializeObject(listCookie))); context.SetupGet(x => x.Request.Cookies).Returns(requestCookies); var responseCookies = new HttpCookieCollection(); context.SetupGet(x => x.Response.Cookies).Returns(responseCookies); var rc = new RequestContext(context.Object, new RouteData()); dynamic apiResponse = new System.Dynamic.ExpandoObject(); apiResponse.Results = new object[0]; apiResponse.NumberOfResults = 0; apiResponse.Facets = string.Empty; var mockEdubaseDataService = new Mock <IContextDataService>(); dynamic serviceResponse = new System.Dynamic.ExpandoObject(); serviceResponse.Results = new object[0]; serviceResponse.NumberOfResults = 0; serviceResponse.Facets = string.Empty; var mockFinancialDataService = new Mock <IFinancialDataService>(); var mockCookieManager = new Mock <ISchoolBenchmarkListService>(); var fakeSchoolComparisonList = new SchoolComparisonListModel(); fakeSchoolComparisonList.HomeSchoolUrn = "123"; fakeSchoolComparisonList.HomeSchoolName = "test"; fakeSchoolComparisonList.HomeSchoolType = "test"; fakeSchoolComparisonList.HomeSchoolFinancialType = "Academies"; fakeSchoolComparisonList.BenchmarkSchools.Add(new BenchmarkSchoolModel { Urn = "123", EstabType = "Academies" }); mockCookieManager.Setup(m => m.GetSchoolBenchmarkList()).Returns(fakeSchoolComparisonList); var controller = new BenchmarkListController(mockEdubaseDataService.Object, mockCookieManager.Object, mockFinancialDataService.Object); controller.ControllerContext = new ControllerContext(rc, controller); var result = await controller.UpdateBenchmarkBasket(null, CookieActions.RemoveAll); mockCookieManager.Verify(m => m.ClearSchoolBenchmarkList(), Times.Once); }
public void UpdateActionReturnsCookieWhenComparisonListCleared() { var request = new Mock <HttpRequestBase>(MockBehavior.Strict); var response = new Mock <HttpResponseBase>(MockBehavior.Strict); var context = new Mock <HttpContextBase>(MockBehavior.Strict); context.SetupGet(x => x.Request).Returns(request.Object); context.SetupGet(x => x.Response).Returns(response.Object); var requestCookies = new HttpCookieCollection(); var listCookie = new ComparisonListModel(); listCookie.BenchmarkSchools = new List <BenchmarkSchoolViewModel>() { new BenchmarkSchoolViewModel() { Urn = "123", Name = "test" } }; requestCookies.Add(new HttpCookie(CookieNames.COMPARISON_LIST, JsonConvert.SerializeObject(listCookie))); context.SetupGet(x => x.Request.Cookies).Returns(requestCookies); var responseCookies = new HttpCookieCollection(); context.SetupGet(x => x.Response.Cookies).Returns(responseCookies); var rc = new RequestContext(context.Object, new RouteData()); dynamic apiResponse = new System.Dynamic.ExpandoObject(); apiResponse.Results = new object[0]; apiResponse.NumberOfResults = 0; apiResponse.Facets = string.Empty; var mockEdubaseDataService = new Mock <IContextDataService>(); dynamic serviceResponse = new System.Dynamic.ExpandoObject(); serviceResponse.Results = new object[0]; serviceResponse.NumberOfResults = 0; serviceResponse.Facets = string.Empty; var controller = new BenchmarkListController(mockEdubaseDataService.Object); controller.ControllerContext = new ControllerContext(rc, controller); var result = controller.UpdateBenchmarkBasket(null, CompareActions.CLEAR_BENCHMARK_LIST); Assert.AreEqual(1, controller.Response.Cookies.Count); var cookie = JsonConvert.DeserializeObject <ComparisonListModel>(controller.Response.Cookies[CookieNames.COMPARISON_LIST].Value); Assert.AreEqual(0, cookie.BenchmarkSchools.Count); }