public void TestHistoryReceivedLineItemNewUserDoesNotSave()
        {
            var thisFar = false;

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

                #region Act
                HistoryReceivedLineItemRepository.DbContext.BeginTransaction();
                HistoryReceivedLineItemRepository.EnsurePersistent(record);
                HistoryReceivedLineItemRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception ex)
            {
                Assert.IsTrue(thisFar);
                Assert.IsNotNull(ex);
                Assert.IsTrue(ex.Message.Contains("Entity: Purchasing.Core.Domain.User"));
                Assert.IsTrue(ex.Message.Contains("Type: Purchasing.Core.Domain.User"));
                throw;
            }
        }
        public void TestHistoryReceivedLineItemsFieldUserWithAValueOfNullDoesNotSave()
        {
            HistoryReceivedLineItem record = null;

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

                #region Act
                HistoryReceivedLineItemRepository.DbContext.BeginTransaction();
                HistoryReceivedLineItemRepository.EnsurePersistent(record);
                HistoryReceivedLineItemRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception)
            {
                Assert.IsNotNull(record);
                Assert.AreEqual(record.User, null);
                var results = record.ValidationResults().AsMessageList();
                results.AssertErrorsAre("The User field is required.");
                Assert.IsTrue(record.IsTransient());
                Assert.IsFalse(record.IsValid());
                throw;
            }
        }
        public void TestPayInvoiceIsTrueSaves()
        {
            #region Arrange
            var historyReceivedLineItem = GetValid(9);
            historyReceivedLineItem.PayInvoice = true;
            #endregion Arrange

            #region Act
            HistoryReceivedLineItemRepository.DbContext.BeginTransaction();
            HistoryReceivedLineItemRepository.EnsurePersistent(historyReceivedLineItem);
            HistoryReceivedLineItemRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsTrue(historyReceivedLineItem.PayInvoice);
            Assert.IsFalse(historyReceivedLineItem.IsTransient());
            Assert.IsTrue(historyReceivedLineItem.IsValid());
            #endregion Assert
        }
        public void TestHistoryReceivedLineItemWithExistingUserSaves()
        {
            #region Arrange
            var record = GetValid(9);
            record.User = UserRepository.Queryable.Single(a => a.Id == "3");
            #endregion Arrange

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

            #region Assert
            Assert.AreEqual("3", record.User.Id);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestCommentsUpdatedIsFalseSaves()
        {
            #region Arrange
            HistoryReceivedLineItem historyReceivedLineItem = GetValid(9);
            historyReceivedLineItem.CommentsUpdated = false;
            #endregion Arrange

            #region Act
            HistoryReceivedLineItemRepository.DbContext.BeginTransaction();
            HistoryReceivedLineItemRepository.EnsurePersistent(historyReceivedLineItem);
            HistoryReceivedLineItemRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsFalse(historyReceivedLineItem.CommentsUpdated);
            Assert.IsFalse(historyReceivedLineItem.IsTransient());
            Assert.IsTrue(historyReceivedLineItem.IsValid());
            #endregion Assert
        }
        public void TestNewReceivedQuantityWithZeroDecValueSaves()
        {
            #region Arrange
            var record = GetValid(9);
            record.NewReceivedQuantity = 0;
            #endregion Arrange

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

            #region Assert
            Assert.AreEqual(0, record.NewReceivedQuantity);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestOldReceivedQuantityWithNullValueSaves()
        {
            #region Arrange
            HistoryReceivedLineItem record = GetValid(9);
            record.OldReceivedQuantity = null;
            #endregion Arrange

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

            #region Assert
            Assert.IsNull(record.OldReceivedQuantity);
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            #endregion Assert
        }
        public void TestUpdateDateWithFutureDateDateWillSave()
        {
            #region Arrange
            var compareDate = DateTime.UtcNow.ToPacificTime().AddDays(15);
            var record      = GetValid(99);
            record.UpdateDate = compareDate;
            #endregion Arrange

            #region Act
            HistoryReceivedLineItemRepository.DbContext.BeginTransaction();
            HistoryReceivedLineItemRepository.EnsurePersistent(record);
            HistoryReceivedLineItemRepository.DbContext.CommitChanges();
            #endregion Act

            #region Assert
            Assert.IsFalse(record.IsTransient());
            Assert.IsTrue(record.IsValid());
            Assert.AreEqual(compareDate, record.UpdateDate);
            #endregion Assert
        }