public void Release_Fails_Not_Found()
        {
            var mockSession = new Mock <IDocumentSession>();
            var sessionRepo = new Mock <AbstractRepository <ReviewSession> >(mockSession.Object);
            var eventRepo   = new Mock <AbstractRepository <Event> >(mockSession.Object);

            // Create a new session to work with
            ReviewSession session = null;

            sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session);

            var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object);

            Assert.Throws <SessionNotFoundException>(() => manager.Release(1, "test"));
        }
        public void Release_Fails_Invalid_Status()
        {
            var mockSession = new Mock <IDocumentSession>();
            var sessionRepo = new Mock <AbstractRepository <ReviewSession> >(mockSession.Object);
            var eventRepo   = new Mock <AbstractRepository <Event> >(mockSession.Object);

            // Create a new session to work with
            var session = NewReviewSession();

            session.SessionStatus = SessionStatusType.Completed;
            sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session);

            var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object);

            Assert.Throws <InvalidOperationException>(() => manager.Release(session.Id, session.Creator));
        }
Exemple #3
0
        public void Release_Integrates()
        {
            // Build the container.
            var container = Setup();
            var session   = NewReviewSession();

            session.SessionStatus = SessionStatusType.Created;
            session.Reviewer      = "somebody";

            using (var lifetime = container.BeginLifetimeScope())
            {
                var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >();

                // Create a new session to work with
                sessionRepo.Save(session);
            }
            using (var lifetime = container.BeginLifetimeScope())
            {
                var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >();
                var eventRepo   = lifetime.Resolve <AbstractRepository <Event> >();
                var manager     = new ReviewSessionManager(sessionRepo, eventRepo);

                Assert.DoesNotThrow(() => manager.Release(session.Id, session.Creator));
            }
            using (var lifetime = container.BeginLifetimeScope())
            {
                var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >();
                var eventRepo   = lifetime.Resolve <AbstractRepository <Event> >();

                var releasedSession = sessionRepo.Get(session.Id);

                Assert.Equal(SessionStatusType.Released, releasedSession.SessionStatus);

                //TODO: Figure out why the build server test break on Event.EventType assertion

                //var events = eventRepo.ListAll();

                //Assert.Equal(1, events.Count);
                //Assert.Equal(events[0].EventType, EventType.ReviewReleased);
                //Assert.Equal(events[0].EntityId, session.Id);
            }
        }
        public void Release_Fails_UnAuthorized()
        {
            var mockSession = new Mock <IDocumentSession>();
            var sessionRepo = new Mock <AbstractRepository <ReviewSession> >(mockSession.Object);
            var eventRepo   = new Mock <AbstractRepository <Event> >(mockSession.Object);

            // Create a new session to work with
            var session = NewReviewSession();

            session.SessionStatus = SessionStatusType.Created;
            session.Questions.Add(new Question());
            session.Requirements.Add(new Requirement());
            session.Reviewer = "somebody";

            sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session);

            var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object);

            Assert.Throws <AuthorizationException>(() => manager.Release(session.Id, "FAIL"));
        }