public void ValidateCancelRequest() { var cookieProviderMock = Substitute.For <IUserInQueueStateRepository>(); string queueId = "queueId"; var config = new CancelEventConfig() { EventId = "e1", QueueDomain = "testDomain.com", CookieDomain = "testdomain", Version = 10, ActionName = "QueueAction" }; var knownUserVersion = UserInQueueService.SDK_VERSION; var expectedMan = Uri.EscapeDataString(config.ActionName); var expectedUrl = $"https://testDomain.com/cancel/testCustomer/e1/?c=testCustomer&e=e1" + $"&ver={knownUserVersion}" + $"&cver=10&man=QueueAction&r=" + "url"; cookieProviderMock.GetState("", 0, "", false) .ReturnsForAnyArgs(new StateInfo(true, true, queueId, 3, "idle")); UserInQueueService testObject = new UserInQueueService(cookieProviderMock); var result = testObject.ValidateCancelRequest("url", config, "testCustomer", "key"); cookieProviderMock.Received().GetState("e1", -1, "key", false); cookieProviderMock.Received().CancelQueueCookie("e1", "testdomain"); Assert.True(result.DoRedirect); Assert.True(result.QueueId == queueId); Assert.True(result.RedirectUrl.ToLower() == expectedUrl.ToLower()); Assert.True(config.EventId == result.EventId); Assert.Equal(config.ActionName, result.ActionName); }
public void ValidateCancelRequest() { var cookieProviderMock = MockRepository.GenerateMock <IUserInQueueStateRepository>(); string queueId = "queueId"; var config = new CancelEventConfig() { EventId = "e1", QueueDomain = "testDomain.com", CookieDomain = "testdomain", Version = 10 }; var knownUserVersion = UserInQueueService.SDK_VERSION; var expectedUrl = $"https://testDomain.com/cancel/testCustomer/e1/?c=testCustomer&e=e1" + $"&ver=v3-aspnet-{knownUserVersion}" + $"&cver=10&r=" + "url"; cookieProviderMock.Stub(stub => stub.GetState("", 0, "", false)) .IgnoreArguments().Return(new StateInfo(true, queueId, 3, "idle")); UserInQueueService testObject = new UserInQueueService(cookieProviderMock); var result = testObject.ValidateCancelRequest("url", config, "testCustomer", "key"); cookieProviderMock.AssertWasCalled(stub => stub.GetState("e1", -1, "key", false)); cookieProviderMock.AssertWasCalled(stub => stub.CancelQueueCookie("e1", "testdomain")); Assert.True(result.DoRedirect); Assert.True(result.QueueId == queueId); Assert.True(result.RedirectUrl.ToLower() == expectedUrl.ToLower()); Assert.True(config.EventId == result.EventId); }