public async Task And_The_Location_Cookie_Exists_Then_Location_Is_Added_To_Shortlist( CreateShortlistItemRequest request, ShortlistCookieItem shortlistCookie, LocationCookieItem locationCookieItem, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > mockLocationCookieService, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { //Arrange mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookie); mockLocationCookieService.Setup(x => x.Get(Constants.LocationCookieName)) .Returns(locationCookieItem); request.RouteName = string.Empty; //Act var actual = await controller.CreateShortlistItem(request) as AcceptedResult; //Assert actual.Should().NotBeNull(); mockMediator.Verify(x => x.Send(It.Is <CreateShortlistItemForUserCommand>(c => c.ShortlistUserId.Equals(shortlistCookie.ShortlistUserId) && c.Lat.Equals(locationCookieItem.Lat) && c.Lon.Equals(locationCookieItem.Lon) && c.LocationDescription.Equals(locationCookieItem.Name) && c.Ukprn.Equals(request.Ukprn) && c.TrainingCode.Equals(request.TrainingCode) ), It.IsAny <CancellationToken>()), Times.Once); }
public async Task And_The_Cookie_Does_Not_Exist_Then_A_New_Cookie_Is_Created_And_Used_For_Shortlist( CreateShortlistItemRequest request, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > mockLocationCookieService, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { //Arrange mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns((ShortlistCookieItem)null); mockLocationCookieService.Setup(x => x.Get(Constants.LocationCookieName)) .Returns((LocationCookieItem)null); request.RouteName = string.Empty; //Act var actual = await controller.CreateShortlistItem(request) as AcceptedResult; //Assert actual.Should().NotBeNull(); mockMediator.Verify(x => x.Send(It.Is <CreateShortlistItemForUserCommand>(c => c.Lat == null && c.Lon == null && c.LocationDescription == null && c.Ukprn.Equals(request.Ukprn) && c.TrainingCode.Equals(request.TrainingCode) ), It.IsAny <CancellationToken>()), Times.Once); mockShortlistCookieService.Verify(x => x.Update( Constants.ShortlistCookieName, It.Is <ShortlistCookieItem>(c => c.ShortlistUserId != Guid.Empty), 30), Times.Once); }
public async Task And_If_ProviderName_Is_In_The_Request_Is_Encoded_Using_The_Protector( CreateShortlistItemRequest request, ShortlistCookieItem shortlistCookie, LocationCookieItem locationCookieItem, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > mockLocationCookieService, [Frozen] Mock <IDataProtector> protector, [Frozen] Mock <IDataProtectionProvider> provider, [Greedy] ShortlistController controller) { //Arrange mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookie); mockLocationCookieService.Setup(x => x.Get(Constants.LocationCookieName)) .Returns(locationCookieItem); request.RouteName = RouteNames.CourseProviders; //Act await controller.CreateShortlistItem(request); //Assert protector.Verify(c => c.Protect(It.Is <byte[]>( x => x[0].Equals(Encoding.UTF8.GetBytes($"{request.ProviderName}")[0]))), Times.Once); }
public async Task And_Cookie_Exists_Then_Adds_To_Shortlist_For_User( Guid expectedId, CreateShortlistItemRequest request, ShortlistCookieItem shortlistCookie, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > mockLocationCookieService, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { //Arrange mockMediator.Setup(x => x.Send(It.Is <CreateShortlistItemForUserCommand>(c => c.ShortlistUserId.Equals(shortlistCookie.ShortlistUserId) && c.Lat == null && c.Lon == null && c.LocationDescription == null && c.Ukprn.Equals(request.Ukprn) && c.TrainingCode.Equals(request.TrainingCode) ), It.IsAny <CancellationToken>())).ReturnsAsync(expectedId); mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookie); mockLocationCookieService.Setup(x => x.Get(Constants.LocationCookieName)) .Returns((LocationCookieItem)null); request.RouteName = string.Empty; //Act var actual = await controller.CreateShortlistItem(request) as AcceptedResult; //Assert actual.Should().NotBeNull(); Guid.Parse(actual.Value.ToString()).Should().Be(expectedId); mockShortlistCookieService.Verify(x => x.Update(Constants.ShortlistCookieName, shortlistCookie, 30), Times.Once); }
public async Task And_If_There_Is_A_Route_Name_Then_It_Is_Redirected(CreateShortlistItemRequest request, ShortlistCookieItem shortlistCookie, LocationCookieItem locationCookieItem, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <ICookieStorageService <LocationCookieItem> > mockLocationCookieService, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { //Arrange mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookie); mockLocationCookieService.Setup(x => x.Get(Constants.LocationCookieName)) .Returns(locationCookieItem); request.RouteName = RouteNames.CourseProviders; //Act var actual = await controller.CreateShortlistItem(request) as RedirectToRouteResult; //Assert actual.Should().NotBeNull(); actual.RouteName.Should().Be(request.RouteName); actual.RouteValues.Should().ContainKey("id"); actual.RouteValues["id"].Should().Be(request.TrainingCode); actual.RouteValues.Should().ContainKey("providerId"); actual.RouteValues["providerId"].Should().Be(request.Ukprn); }