コード例 #1
0
        public void TestAddNullSession()
        {
            var mock = new Mock<ISessionRepository>();
              var manager = new SessionManager(mock.Object);

              manager.AddSession(null);
        }
コード例 #2
0
        public void TestAddDuplicatedSession()
        {
            const string DUPLICATED_NAME = "S1";

              var mock = new Mock<ISessionRepository>();
              var manager = new SessionManager(mock.Object);

              Session newSession = new SessionBuilder().StartDefault(DUPLICATED_NAME).Build();
              manager.AddSession(newSession);
              Session newSession2 = new SessionBuilder().StartDefault(DUPLICATED_NAME).Build();
              manager.AddSession(newSession2);
        }
コード例 #3
0
        public void TestGetSession()
        {
            var mock = new Mock<ISessionRepository>();
              var manager = new SessionManager(mock.Object);

              Session otherSession = new SessionBuilder().StartDefault("S1").Build();
              Session expectedSession = new SessionBuilder().StartDefault("S2").Build();

              manager.AddSession(otherSession);
              manager.AddSession(expectedSession);

              var actualSession = manager.GetSession(expectedSession.Name);

              Assert.AreSame(expectedSession, actualSession);
        }
コード例 #4
0
        public void TestGetSessionNames()
        {
            var mock = new Mock<ISessionRepository>();
              var manager = new SessionManager(mock.Object);

              Session newSession = new SessionBuilder().StartDefault("S1").Build();
              manager.AddSession(newSession);

              newSession = new SessionBuilder().StartDefault("S2").Build();
              manager.AddSession(newSession);

              newSession = new SessionBuilder().StartDefault("S3").Build();
              manager.AddSession(newSession);

              var names = manager.GetSessionNames();

              const int QTY_SESSIONS_ADDED = 3;

              Assert.AreEqual(QTY_SESSIONS_ADDED, names.Count());

              Assert.AreEqual(1, names.Where(n => n.Equals("S1")).Count());
              Assert.AreEqual(1, names.Where(n => n.Equals("S2")).Count());
              Assert.AreEqual(1, names.Where(n => n.Equals("S3")).Count());
        }
コード例 #5
0
        public void TestSimpleAddRemoveSession()
        {
            var mock = new Mock<ISessionRepository>();
              var manager = new SessionManager(mock.Object);

              Session newSession = new SessionBuilder().StartDefault().Build();
              manager.AddSession(newSession);

              Assert.AreEqual(1, manager.GetSessions().Count());
              Assert.AreSame(newSession, manager.GetSessions().First());

              manager.RemoveSession(newSession);

              Assert.AreEqual(0, manager.GetSessions().Count());
        }
コード例 #6
0
        public void TestSetCurrentSessionByName()
        {
            var mock = new Mock<ISessionRepository>();
              var manager = new SessionManager(mock.Object);

              Session newSession = new SessionBuilder().StartDefault().Build();
              manager.AddSession(newSession);

              Assert.IsNull(manager.CurrentSession);

              bool result = manager.SetCurrentSessionByName(newSession.Name);

              Assert.AreSame(newSession, manager.CurrentSession);
              Assert.IsTrue(result);

              result = manager.SetCurrentSessionByName(newSession.Name);
              Assert.IsFalse(result);
        }
コード例 #7
0
        public void TestRemoveNonExistentSession()
        {
            var mock = new Mock<ISessionRepository>();
              var manager = new SessionManager(mock.Object);

              Session newSession = new SessionBuilder().StartDefault().Build();

              manager.RemoveSession(newSession);
        }
コード例 #8
0
        public void TestPersistWithRollback()
        {
            Session s1 = new SessionBuilder().StartDefault("S1").Build();

              var mockUnitOfWork = new Mock<IUnitOfWork>();
              mockUnitOfWork.Setup(uow => uow.Commit()).Throws(new Exception(STR_ExceptionOnCommitForTestingPurposes));

              var mockRepository = new Mock<ISessionRepository>();
              mockRepository.Setup(sm => sm.GetUnitOfWork()).Returns(mockUnitOfWork.Object);

              var manager = new SessionManager(mockRepository.Object);
              manager.AddSession(s1);

              manager.Persist();

              mockUnitOfWork.Verify(uow => uow.Rollback(), Times.Once());
        }
コード例 #9
0
        public void TestPersist()
        {
            Session s1 = new SessionBuilder().StartDefault("S1").Build();
              Session s2 = new SessionBuilder().StartDefault("S2").Build();
              Session s3 = new SessionBuilder().StartDefault("S3").Build();

              var mockUnitOfWork = new Mock<IUnitOfWork>();
              var mockRepository = new Mock<ISessionRepository>();
              mockRepository.Setup(sm => sm.GetUnitOfWork()).Returns(mockUnitOfWork.Object);

              var manager = new SessionManager(mockRepository.Object);
              manager.AddSession(s1);
              manager.AddSession(s2);
              manager.AddSession(s3);
              manager.RemoveSession(s3);
              manager.CurrentSession = s1;

              manager.Persist();

              mockUnitOfWork.Verify(uow => uow.RegisterSavedOrUpdated(It.Is<Session>(o => o.Equals(s1))), Times.Once());
              mockUnitOfWork.Verify(uow => uow.RegisterSavedOrUpdated(It.Is<Session>(o => o.Equals(s2))), Times.Once());
              mockUnitOfWork.Verify(uow => uow.RegisterRemoved(It.Is<Session>(o => o.Equals(s3))), Times.Once());
              mockUnitOfWork.Verify(uow => uow.RegisterSavedOrUpdated(It.Is<CurrentSessionInfo>(o => o.CurrentSessionName.Equals(s1.Name))), Times.Once());
              mockUnitOfWork.Verify(uow => uow.Commit(), Times.Once());
        }
コード例 #10
0
        public void TestLoad()
        {
            Session s1 = new SessionBuilder().StartDefault("S1").Build();
              Session s2 = new SessionBuilder().StartDefault("S2").Build();
              Session s3 = new SessionBuilder().StartDefault("S3").Build();

              var mock = new Mock<ISessionRepository>();
              mock.Setup(repo => repo.GetAllSessions()).Returns(new List<Session>() { s1, s2, s3 });
              mock.Setup(repo => repo.GetCurrentSessionName()).Returns("S2");

              var manager = new SessionManager(mock.Object);

              manager.Load();

              var sessions = manager.GetSessions();

              Assert.AreEqual(3, sessions.Count());

              Assert.AreEqual(1, sessions.Where(s => s.Equals(s1)).Count());
              Assert.AreEqual(1, sessions.Where(s => s.Equals(s2)).Count());
              Assert.AreEqual(1, sessions.Where(s => s.Equals(s3)).Count());

              Assert.AreSame(s2, manager.CurrentSession);
        }