public async Task And_If_There_Is_A_RouteName_Then_It_Is_Redirected_And_ProviderName_Not_Encoded_If_Empty( Guid id, DeleteShortlistItemRequest request, ShortlistCookieItem shortlistCookie, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <IMediator> mockMediator, [Frozen] Mock <IDataProtector> protector, [Greedy] ShortlistController controller) { //Arrange request.ProviderName = string.Empty; mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookie); request.RouteName = RouteNames.CourseProviders; //Act var actual = await controller.DeleteShortlistItemForUser(request) as RedirectToRouteResult; //Assert actual.Should().NotBeNull(); actual.RouteName.Should().Be(RouteNames.CourseProviders); actual.RouteValues.Should().ContainKey("id"); actual.RouteValues["id"].Should().Be(request.TrainingCode); actual.RouteValues.Should().ContainKey("providerId"); actual.RouteValues["providerId"].Should().Be(request.Ukprn); actual.RouteValues["removed"].Should().Be(string.Empty); protector.Verify(c => c.Protect(It.IsAny <byte[]>()), Times.Never); }
public async Task Then_Calls_Delete_Shortlist_From_Mediator( Guid userId, Guid id, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { var controllerResult = await controller.DeleteShortlistItemForUser(userId, id) as ObjectResult; controllerResult !.StatusCode.Should().Be((int)HttpStatusCode.Accepted); mockMediator .Verify(mediator => mediator.Send( It.Is <DeleteShortlistItemForUserRequest>(query => query.ShortlistUserId == userId && query.Id == id), It.IsAny <CancellationToken>()), Times.Once); }
public async Task And_Exception_Then_Returns_Bad_Request( Guid shortlistUserId, Guid id, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { mockMediator .Setup(mediator => mediator.Send( It.IsAny <DeleteShortlistItemForUserCommand>(), It.IsAny <CancellationToken>())) .Throws <InvalidOperationException>(); var controllerResult = await controller.DeleteShortlistItemForUser(id, shortlistUserId) as StatusCodeResult; controllerResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest); }
public async Task Then_Deletes_Shortlist_Item_For_User_From_Mediator( Guid shortlistUserId, Guid id, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { var controllerResult = await controller.DeleteShortlistItemForUser(id, shortlistUserId) as ObjectResult; controllerResult !.StatusCode.Should().Be((int)HttpStatusCode.Accepted); mockMediator .Verify(mediator => mediator.Send( It.Is <DeleteShortlistItemForUserCommand>(command => command.UserId == shortlistUserId && command.Id == id), It.IsAny <CancellationToken>()), Times.Once); }
public async Task And_Cookie_Does_Not_Exists_Then_Deletes_Command_Is_Not_Called( Guid id, DeleteShortlistItemRequest request, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { //Arrange mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns((ShortlistCookieItem)null); request.RouteName = string.Empty; //Act var actual = await controller.DeleteShortlistItemForUser(request) as AcceptedResult; //Assert actual.Should().NotBeNull(); mockMediator.Verify(x => x.Send(It.IsAny <DeleteShortlistItemForUserCommand>(), It.IsAny <CancellationToken>()), Times.Never); }
public async Task And_Cookie_Exists_Then_Deletes_Shortlist_Item_For_User( DeleteShortlistItemRequest request, ShortlistCookieItem shortlistCookie, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <IMediator> mockMediator, [Greedy] ShortlistController controller) { //Arrange mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookie); request.RouteName = string.Empty; //Act var actual = await controller.DeleteShortlistItemForUser(request) as AcceptedResult; //Assert actual.Should().NotBeNull(); mockMediator.Verify(x => x.Send(It.Is <DeleteShortlistItemForUserCommand>(c => c.ShortlistUserId.Equals(shortlistCookie.ShortlistUserId) && c.Id.Equals(request.ShortlistId) ), It.IsAny <CancellationToken>()), Times.Once); }
public async Task And_If_ProviderName_Is_In_The_Request_Is_Encoded_Using_The_Protector( Guid id, DeleteShortlistItemRequest request, ShortlistCookieItem shortlistCookie, [Frozen] Mock <ICookieStorageService <ShortlistCookieItem> > mockShortlistCookieService, [Frozen] Mock <IMediator> mockMediator, [Frozen] Mock <IDataProtector> protector, [Frozen] Mock <IDataProtectionProvider> provider, [Greedy] ShortlistController controller) { //Arrange provider.Setup(x => x.CreateProtector(Constants.ShortlistProtectorName)).Returns(protector.Object); mockShortlistCookieService .Setup(service => service.Get(Constants.ShortlistCookieName)) .Returns(shortlistCookie); request.RouteName = RouteNames.CourseProviders; //Act await controller.DeleteShortlistItemForUser(request); //Assert protector.Verify(c => c.Protect(It.Is <byte[]>( x => x[0].Equals(Encoding.UTF8.GetBytes($"{request.ProviderName}")[0]))), Times.Once); }