public void Archive_Integrates() { // Build the container. var container = Setup(); var session = NewReviewSession(); session.SessionStatus = SessionStatusType.Completed; 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.Archive(session.Id, session.Creator)); } using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); var releasedSession = sessionRepo.Get(session.Id); Assert.Equal(SessionStatusType.Archived, releasedSession.SessionStatus); } }
public void Archive_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.Archive(1, "test")); }
public void Archive_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.Released; sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session); var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <InvalidOperationException>(() => manager.Archive(session.Id, session.Creator)); }
public void Archive_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.Completed; sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session); var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <AuthorizationException>(() => manager.Archive(session.Id, "FAIL")); }