public void SessionValidateResultRepository_Cancel_Test()
        {
            string sessionKey = "QueueITAccepted-SDFrts345E-customerid-eventid";

            SessionStateModel model = new SessionStateModel()
            {
                OriginalUri  = "http://original.url/",
                PlaceInQueue = 5486,
                QueueId      = Guid.NewGuid(),
                RedirectType = RedirectType.Queue,
                TimeStamp    = DateTime.UtcNow
            };

            HttpContext.Current.Session[sessionKey] = model;

            this._queue.Stub(queue => queue.CustomerId).Return("CustomerId");
            this._queue.Stub(queue => queue.EventId).Return("EventId");

            SessionValidateResultRepository repository = new SessionValidateResultRepository();

            AcceptedConfirmedResult actualValidationResult = repository.GetValidationResult(this._queue)
                                                             as AcceptedConfirmedResult;

            repository.Cancel(this._queue, actualValidationResult);

            Assert.IsNull(HttpContext.Current.Session[sessionKey]);
        }
        public void SessionValidateResultRepository_GetValidationResult_Test()
        {
            string sessionKey = "QueueITAccepted-SDFrts345E-customerid-eventid";

            SessionStateModel model = new SessionStateModel()
            {
                OriginalUri  = "http://original.url/",
                PlaceInQueue = 5486,
                QueueId      = Guid.NewGuid(),
                RedirectType = RedirectType.Queue,
                TimeStamp    = DateTime.UtcNow
            };

            HttpContext.Current.Session[sessionKey] = model;

            this._queue.Stub(queue => queue.CustomerId).Return("CustomerId");
            this._queue.Stub(queue => queue.EventId).Return("EventId");

            SessionValidateResultRepository repository = new SessionValidateResultRepository();

            AcceptedConfirmedResult actualValidationResult = repository.GetValidationResult(this._queue)
                                                             as AcceptedConfirmedResult;

            Assert.IsNotNull(actualValidationResult);
            Assert.AreEqual(new Uri(model.OriginalUri), actualValidationResult.KnownUser.OriginalUrl);
            Assert.AreEqual(model.PlaceInQueue, actualValidationResult.KnownUser.PlaceInQueue);
            Assert.AreEqual(model.QueueId, actualValidationResult.KnownUser.QueueId);
            Assert.AreEqual(model.RedirectType, actualValidationResult.KnownUser.RedirectType);
            Assert.AreEqual(model.TimeStamp, actualValidationResult.KnownUser.TimeStamp);
            Assert.IsFalse(actualValidationResult.IsInitialValidationRequest);
            Assert.AreSame(this._queue, actualValidationResult.Queue);
        }
        public void SessionValidateResultRepository_Cancel_Test()
        {
            string sessionKey = "QueueITAccepted-SDFrts345E-customerid-eventid";

            SessionStateModel model = new SessionStateModel()
            {
                OriginalUri = "http://original.url/",
                PlaceInQueue = 5486,
                QueueId = Guid.NewGuid(),
                RedirectType = RedirectType.Queue,
                TimeStamp = DateTime.UtcNow
            };
            HttpContext.Current.Session[sessionKey] = model;

            this._queue.Stub(queue => queue.CustomerId).Return("CustomerId");
            this._queue.Stub(queue => queue.EventId).Return("EventId");

            SessionValidateResultRepository repository = new SessionValidateResultRepository();
            
            AcceptedConfirmedResult actualValidationResult = repository.GetValidationResult(this._queue)
                as AcceptedConfirmedResult;
            repository.Cancel(this._queue, actualValidationResult);

            Assert.IsNull(HttpContext.Current.Session[sessionKey]);
        }
        public void SessionValidateResultRepository_GetValidationResult_Test()
        {
            string sessionKey = "QueueITAccepted-SDFrts345E-customerid-eventid";

            SessionStateModel model = new SessionStateModel()
            {
                OriginalUri = "http://original.url/",
                PlaceInQueue = 5486,
                QueueId = Guid.NewGuid(),
                RedirectType = RedirectType.Queue,
                TimeStamp = DateTime.UtcNow
            };
            HttpContext.Current.Session[sessionKey] = model;

            this._queue.Stub(queue => queue.CustomerId).Return("CustomerId");
            this._queue.Stub(queue => queue.EventId).Return("EventId");

            SessionValidateResultRepository repository = new SessionValidateResultRepository();

            AcceptedConfirmedResult actualValidationResult = repository.GetValidationResult(this._queue) 
                as AcceptedConfirmedResult;

            Assert.IsNotNull(actualValidationResult);
            Assert.AreEqual(new Uri(model.OriginalUri), actualValidationResult.KnownUser.OriginalUrl);
            Assert.AreEqual(model.PlaceInQueue, actualValidationResult.KnownUser.PlaceInQueue);
            Assert.AreEqual(model.QueueId, actualValidationResult.KnownUser.QueueId);
            Assert.AreEqual(model.RedirectType, actualValidationResult.KnownUser.RedirectType);
            Assert.AreEqual(model.TimeStamp, actualValidationResult.KnownUser.TimeStamp);
            Assert.IsFalse(actualValidationResult.IsInitialValidationRequest);
            Assert.AreSame(this._queue, actualValidationResult.Queue);
        }