public void AllowKeepersFromPriorSeason_DefaultNull()
        {
            const string leagueKey = "League_Key_AllowKeepersFromPriorSeason_DefaultNull";

            using (var session = _sessionFactory.OpenSession())
            {
                var league = new LeagueDao() { Key = leagueKey };

                using (var transaction = session.BeginTransaction())
                {
                    session.SaveOrUpdate(league);
                    transaction.Commit();
                }
            }

            using (var session = _sessionFactory.OpenSession())
            {
                var loadedLeague = session.Get<LeagueDao>(leagueKey);
                Assert.AreEqual(leagueKey, loadedLeague.Key);
                Assert.IsFalse(loadedLeague.AllowKeepersFromPriorSeason.HasValue);
            }
        }
 public KeeperSettingsModel(LeagueDao leagueData)
 {
     this.AllowKeepersFromPriorSeason = leagueData.AllowKeepersFromPriorSeason.GetValueOrDefault(false);
     this.LeagueKey = leagueData.Key;
 }
        public void ViewKeeperSettings_LeagueDataExists_ModelPrepopulated()
        {
            const string leagueKey = "1.l.2";

            ISession mockSession = MockRepository.GenerateMock<ISession>();
            _mockSessionFactory.Expect(f => f.OpenSession()).Return(mockSession);

            LeagueDao leagueData = new LeagueDao() { Key = leagueKey, AllowKeepersFromPriorSeason = true };
            mockSession.Expect(s => s.Get<LeagueDao>(leagueKey)).Return(leagueData);

            ViewResult result = _leagueController.ViewKeeperSettings(leagueKey) as ViewResult;
            Assert.IsNotNull(result, "Incorrect action result type returned.");

            KeeperSettingsModel model = result.Model as KeeperSettingsModel;
            Assert.IsNotNull(model, "Incorrect model type returned.");
            Assert.AreEqual(leagueKey, model.LeagueKey);
            Assert.IsTrue(model.AllowKeepersFromPriorSeason);

            _mockFantasizer.VerifyAllExpectations();
            _mockSessionFactory.VerifyAllExpectations();
            mockSession.VerifyAllExpectations();
        }
        public void UpdateKeeperSettings_LeagueDataExists_Succeeds()
        {
            const string leagueKey = "1.l.2";

            var model = new KeeperSettingsModel() { LeagueKey = leagueKey, AllowKeepersFromPriorSeason = false };

            // Setup query expectations
            var leagueData = new LeagueDao() { Key = leagueKey, AllowKeepersFromPriorSeason = true };
            ISession mockSession = MockRepository.GenerateMock<ISession>();
            _mockSessionFactory.Expect(f => f.OpenSession()).Return(mockSession);
            mockSession.Expect(s => s.Get<LeagueDao>(leagueKey)).Return(leagueData);

            // Setup save expectation
            ITransaction mockTransaction = MockRepository.GenerateMock<ITransaction>();
            mockSession.Expect(s => s.BeginTransaction()).Return(mockTransaction);
            mockSession.Expect(s => s.SaveOrUpdate(Arg<LeagueDao>.Matches(l => l.AllowKeepersFromPriorSeason == false && l.Key == leagueKey)));
            mockTransaction.Expect(t => t.Commit());

            // Act
            RedirectToRouteResult result = _leagueController.UpdateKeeperSettings(model) as RedirectToRouteResult;

            // Verify
            Assert.IsNotNull(result, "Expected redirect result.");
            result.AssertActionRedirect().ToAction("ListTeams").WithParameter("leagueKey", leagueKey);
            _mockSessionFactory.VerifyAllExpectations();
            mockSession.VerifyAllExpectations();
        }