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)); }
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")); }