public void TestApprovalsWithANewValueDoesNotSave()
        {
            Split record = null;

            try
            {
                #region Arrange
                record = GetValid(9);
                record.Approvals.Add(CreateValidEntities.Approval(1));
                #endregion Arrange

                #region Act
                SplitRepository.DbContext.BeginTransaction();
                SplitRepository.EnsurePersistent(record);
                SplitRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception ex)
            {
                Assert.IsNotNull(record);
                Assert.IsNotNull(ex);
                Assert.AreEqual("object references an unsaved transient instance - save the transient instance before flushing or set cascade action for the property to something that would make it autosave. Type: Purchasing.Core.Domain.Approval, Entity: Purchasing.Core.Domain.Approval", ex.Message);
                throw;
            }
        }
        public void TestSplitNewLineItemDoesNotSave()
        {
            var thisFar = false;

            try
            {
                #region Arrange
                var record = GetValid(9);
                record.LineItem = new LineItem();
                thisFar         = true;
                #endregion Arrange

                #region Act
                SplitRepository.DbContext.BeginTransaction();
                SplitRepository.EnsurePersistent(record);
                SplitRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception ex)
            {
                Assert.IsTrue(thisFar);
                Assert.IsNotNull(ex);
                Assert.AreEqual("object references an unsaved transient instance - save the transient instance before flushing or set cascade action for the property to something that would make it autosave. Type: Purchasing.Core.Domain.LineItem, Entity: Purchasing.Core.Domain.LineItem", ex.Message);
                throw;
            }
        }
        public void TestProjectWithTooLongValueDoesNotSave()
        {
            Split split = null;

            try
            {
                #region Arrange
                split         = GetValid(9);
                split.Project = "x".RepeatTimes((10 + 1));
                #endregion Arrange

                #region Act
                SplitRepository.DbContext.BeginTransaction();
                SplitRepository.EnsurePersistent(split);
                SplitRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception)
            {
                Assert.IsNotNull(split);
                Assert.AreEqual(10 + 1, split.Project.Length);
                var results = split.ValidationResults().AsMessageList();
                results.AssertErrorsAre(string.Format("The field {0} must be a string with a maximum length of {1}.", "Project", "10"));
                Assert.IsTrue(split.IsTransient());
                Assert.IsFalse(split.IsValid());
                throw;
            }
        }
        public void TestSplitsFieldOrderWithAValueOfNullDoesNotSave()
        {
            Split record = null;

            try
            {
                #region Arrange
                record       = GetValid(9);
                record.Order = null;
                #endregion Arrange

                #region Act
                SplitRepository.DbContext.BeginTransaction();
                SplitRepository.EnsurePersistent(record);
                SplitRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception)
            {
                Assert.IsNotNull(record);
                Assert.AreEqual(record.Order, null);
                var results = record.ValidationResults().AsMessageList();
                results.AssertErrorsAre("The Order field is required.");
                Assert.IsTrue(record.IsTransient());
                Assert.IsFalse(record.IsValid());
                throw;
            }
        }
示例#5
0
 public ReportManager()
 {
     _raceRepository    = new RaceRepository();
     _splitRepository   = new SplitRepository();
     _athleteRepository = new AthleteRepository();
     Races = new ObservableCollection <Race>(_raceRepository.GetAll());
 }
        public void TestProjectWithOneCharacterSaves()
        {
            #region Arrange
            var split = GetValid(9);
            split.Project = "x";
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(split);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsFalse(split.IsTransient());
            Assert.IsTrue(split.IsValid());
            #endregion Assert
        }
        public void TestSubAccountWithOneSpaceSaves()
        {
            #region Arrange
            var split = GetValid(9);
            split.SubAccount = " ";
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(split);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsFalse(split.IsTransient());
            Assert.IsTrue(split.IsValid());
            #endregion Assert
        }
        public void TestSplitWithNullDbAccountSaves()
        {
            #region Arrange
            var record = GetValid(9);
            record.DbAccount = null;
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(record);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.AreEqual(null, record.DbAccount);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestSplitWithExistingDbAccountSaves()
        {
            #region Arrange
            var record = GetValid(9);
            record.DbAccount = AccountRepository.Queryable.Single(a => a.Id == "3");
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(record);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.AreEqual("3", record.DbAccount.Id);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestApprovalsWithEmptyListWillSave()
        {
            #region Arrange
            Split record = GetValid(9);
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(record);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsNotNull(record.Approvals);
            Assert.AreEqual(0, record.Approvals.Count);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestProjectWithLongValueSaves()
        {
            #region Arrange
            var split = GetValid(9);
            split.Project = "x".RepeatTimes(10);
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(split);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.AreEqual(10, split.Project.Length);
            Assert.IsFalse(split.IsTransient());
            Assert.IsTrue(split.IsValid());
            #endregion Assert
        }
        public void TestSplitWithExistingOrderSaves()
        {
            #region Arrange
            var record = GetValid(9);
            record.Order = Repository.OfType <Order>().Queryable.Single(a => a.Id == 3);
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(record);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.AreEqual(3, record.Order.Id);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestAmountSaves2()
        {
            #region Arrange
            var record = GetValid(9);
            record.Amount = 999999999.999m;
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(record);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.AreEqual(999999999.999m, record.Amount);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestAccountWithOneSpaceSaves()
        {
            #region Arrange
            AccountRepository.DbContext.BeginTransaction();
            var account = CreateValidEntities.Account(1);
            account.SetIdTo(" ");
            AccountRepository.EnsurePersistent(account);
            var split = GetValid(9);
            split.Account = " ";
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(split);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsFalse(split.IsTransient());
            Assert.IsTrue(split.IsValid());
            #endregion Assert
        }
        public void TestApprovalsWithPopulatedExistingListWillSave()
        {
            #region Arrange
            Split record = GetValid(9);
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(record);
            SplitRepository.DbContext.CommitTransaction();

            const int addedCount     = 3;
            var       relatedRecords = new List <Approval>();
            for (int i = 0; i < addedCount; i++)
            {
                relatedRecords.Add(CreateValidEntities.Approval(i + 1));
                relatedRecords[i].Split      = record;
                relatedRecords[i].User       = null;
                relatedRecords[i].StatusCode = OrderStatusCodeRepository.Queryable.First();
                relatedRecords[i].Order      = Repository.OfType <Order>().Queryable.First();
                Repository.OfType <Approval>().EnsurePersistent(relatedRecords[i]);
            }
            #endregion Arrange

            #region Act
            var saveId = record.Id;
            NHibernateSessionManager.Instance.GetSession().Evict(record);
            record = SplitRepository.Queryable.Single(a => a.Id == saveId);
            Assert.AreEqual(3, record.Approvals.Count());
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(record);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsNotNull(record.Approvals);
            Assert.AreEqual(addedCount, record.Approvals.Count);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestAccountWithLongValueSaves()
        {
            #region Arrange
            AccountRepository.DbContext.BeginTransaction();
            var account = CreateValidEntities.Account(1);
            account.SetIdTo("x".RepeatTimes(10));
            AccountRepository.EnsurePersistent(account);
            var split = GetValid(9);
            split.Account = "x".RepeatTimes(10);
            #endregion Arrange

            #region Act
            SplitRepository.DbContext.BeginTransaction();
            SplitRepository.EnsurePersistent(split);
            SplitRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.AreEqual(10, split.Account.Length);
            Assert.IsFalse(split.IsTransient());
            Assert.IsTrue(split.IsValid());
            #endregion Assert
        }