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 Edit_Integrates() { // Build the container. var container = Setup(); var session = NewReviewSession(); 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); AutoMapper.Mapper.CreateMap <ReviewSession, ReviewSession>(); var editSession = AutoMapper.Mapper.Map <ReviewSession>(session); editSession.Requirements.Add(new Requirement { Comment = "test", Content = "test" }); Assert.DoesNotThrow(() => manager.Edit(editSession, session.Creator)); } }
public void ProvideFeedback_Integrates() { // Build the container. var container = Setup(); // Create a new session to work with var session = NewReviewSession(); session.SessionStatus = SessionStatusType.Released; session.Reviewer = "*****@*****.**"; using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); 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); Mapper.CreateMap <Question, Question>(); var questions = session.Questions.Select(Mapper.Map <Question>).ToList(); questions[0].Feedbacks = new List <Feedback> { new Feedback { Created = DateTime.UtcNow, Text = "This is new feedback", Username = session.Reviewer } }; Assert.DoesNotThrow(() => manager.ProvideFeedback(session.Id, questions, session.Reviewer)); } using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); var savedSession = sessionRepo.Get(session.Id); Assert.Equal(SessionStatusType.Released, savedSession.SessionStatus); Assert.Equal(1, savedSession.Questions[0].Feedbacks.Count); Assert.Equal("This is new feedback", savedSession.Questions[0].Feedbacks[0].Text); Assert.Equal(session.Reviewer, savedSession.Questions[0].Feedbacks[0].Username); } }
public void CompleteQuestionnaire_Integrates() { // Build the container. var container = Setup(); // Create a new session to work with var session = NewReviewSession(); session.SessionStatus = SessionStatusType.Released; session.Reviewer = "*****@*****.**"; using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); 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); Mapper.CreateMap <Question, Question>(); var questions = session.Questions.Select(Mapper.Map <Question>).ToList(); questions[0].Content = "test was changed"; Assert.DoesNotThrow(() => manager.CompleteQuestionnaire(session.Id, questions, session.Reviewer)); } using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); var eventRepo = lifetime.Resolve <AbstractRepository <Event> >(); var savedSession = sessionRepo.Get(session.Id); Assert.Equal(SessionStatusType.Completed, savedSession.SessionStatus); Assert.Equal(2, savedSession.Questions.Count); Assert.Equal("test was changed", savedSession.Questions[0].Content); //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.QuestionnaireCompleted); //Assert.Equal(events[0].EntityId, session.Id); } }
public void CompleteQuestionnaire_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.CompleteQuestionnaire(1, new List <Question>(), "test")); }
public void DeleteSession_Fails_Authorization() { 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(); sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session); var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <AuthorizationException>(() => manager.Delete(session.Id, "test")); }
public void CreateNewSession_Fails_With_ID() { 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.Id = 1; var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <InvalidOperationException>(() => manager.Create(session, "test_user")); }
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 AssignReviewer_Fails_NotFound() { 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.AssignReviewer(-1, "*****@*****.**", "*****@*****.**")); }
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")); }
public void AssignReviewer_Fails_Pending_Session() { 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.PendingReviewer = true; sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session); var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <InvalidOperationException>(() => manager.AssignReviewer(session.Id, "*****@*****.**", session.Creator)); }
public void CompleteQuestionnaire_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.Reviewer = "*****@*****.**"; 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.CompleteQuestionnaire(session.Id, new List <Question>(), session.Reviewer)); }
public void SaveQuestionnaire_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.Reviewer = "*****@*****.**"; session.SessionStatus = SessionStatusType.Released; sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session); var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <AuthorizationException>(() => manager.SaveQuestionnaire(session.Id, new List <Question>(), "FAIL")); }
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 CreateNewSession_Integrates() { // Build the container. var container = Setup(); using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); var eventRepo = lifetime.Resolve <AbstractRepository <Event> >(); var manager = new ReviewSessionManager(sessionRepo, eventRepo); var session = NewReviewSession(); Assert.DoesNotThrow(() => manager.Create(session, "test_user")); Assert.True(session.Id > 0); Assert.Equal(session.Creator, "test_user"); Assert.Equal(SessionStatusType.Created, session.SessionStatus); Assert.InRange(session.LastModified.Ticks, DateTime.UtcNow.AddMinutes(-1).Ticks, DateTime.UtcNow.AddMinutes(1).Ticks); } }
public void AssignReviewer_Integrates() { // Build the container. var container = Setup(); // Create a new session to work with var session = NewReviewSession(); using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); 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.AssignReviewer(session.Id, "*****@*****.**", session.Creator)); } using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); var eventRepo = lifetime.Resolve <AbstractRepository <Event> >(); var savedSession = sessionRepo.Get(session.Id); Assert.False(savedSession.PendingReviewer); Assert.Equal("*****@*****.**", savedSession.Reviewer); //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.ReviewerInvited); //Assert.Equal(events[0].EntityId, session.Id); } }
public void DeleteSession_Integrates() { // Build the container. var container = Setup(); using (var lifetime = container.BeginLifetimeScope()) { var sessionRepo = lifetime.Resolve <AbstractRepository <ReviewSession> >(); var eventRepo = lifetime.Resolve <AbstractRepository <Event> >(); // Create a new session to work with var session = NewReviewSession(); sessionRepo.Save(session); var manager = new ReviewSessionManager(sessionRepo, eventRepo); Assert.DoesNotThrow(() => manager.Delete(session.Id, session.Creator)); var nullSession = sessionRepo.Get(session.Id); Assert.Null(nullSession); } }