public void TestNameWithTooLongValueDoesNotSave()
        {
            SubAccount subAccount = null;

            try
            {
                #region Arrange
                subAccount      = GetValid(9);
                subAccount.Name = "x".RepeatTimes((40 + 1));
                #endregion Arrange

                #region Act
                SubAccountRepository.DbContext.BeginTransaction();
                SubAccountRepository.EnsurePersistent(subAccount);
                SubAccountRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception)
            {
                Assert.IsNotNull(subAccount);
                Assert.AreEqual(40 + 1, subAccount.Name.Length);
                var results = subAccount.ValidationResults().AsMessageList();
                results.AssertErrorsAre(string.Format("The field {0} must be a string with a maximum length of {1}.", "Name", "40"));
                //Assert.IsTrue(subAccount.IsTransient());
                Assert.IsFalse(subAccount.IsValid());
                throw;
            }
        }
        public void TestSubAccountNumberWithSpacesOnlyDoesNotSave()
        {
            SubAccount subAccount = null;

            try
            {
                #region Arrange
                subAccount = GetValid(9);
                subAccount.SubAccountNumber = " ";
                #endregion Arrange

                #region Act
                SubAccountRepository.DbContext.BeginTransaction();
                SubAccountRepository.EnsurePersistent(subAccount);
                SubAccountRepository.DbContext.CommitTransaction();
                #endregion Act
            }
            catch (Exception)
            {
                Assert.IsNotNull(subAccount);
                var results = subAccount.ValidationResults().AsMessageList();
                results.AssertErrorsAre(string.Format("The {0} field is required.", "SubAccountNumber"));
                //Assert.IsTrue(subAccount.IsTransient());
                Assert.IsFalse(subAccount.IsValid());
                throw;
            }
        }
        public void TestNameWithOneCharacterSaves()
        {
            #region Arrange
            var subAccount = GetValid(9);
            subAccount.Name = "x";
            #endregion Arrange

            #region Act
            SubAccountRepository.DbContext.BeginTransaction();
            SubAccountRepository.EnsurePersistent(subAccount);
            SubAccountRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsFalse(subAccount.IsTransient());
            Assert.IsTrue(subAccount.IsValid());
            #endregion Assert
        }
        public void TestIsActiveIsTrueSaves()
        {
            #region Arrange
            var subAccount = GetValid(9);
            subAccount.IsActive = true;
            #endregion Arrange

            #region Act
            SubAccountRepository.DbContext.BeginTransaction();
            SubAccountRepository.EnsurePersistent(subAccount);
            SubAccountRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsTrue(subAccount.IsActive);
            Assert.IsFalse(subAccount.IsTransient());
            Assert.IsTrue(subAccount.IsValid());
            #endregion Assert
        }
        public void TestNameWithLongValueSaves()
        {
            #region Arrange
            var subAccount = GetValid(9);
            subAccount.Name = "x".RepeatTimes(40);
            #endregion Arrange

            #region Act
            SubAccountRepository.DbContext.BeginTransaction();
            SubAccountRepository.EnsurePersistent(subAccount);
            SubAccountRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.AreEqual(40, subAccount.Name.Length);
            Assert.IsFalse(subAccount.IsTransient());
            Assert.IsTrue(subAccount.IsValid());
            #endregion Assert
        }
        public void TestAccountNumberWithOneCharacterSaves()
        {
            #region Arrange
            AccountRepository.DbContext.BeginTransaction();
            var account = CreateValidEntities.Account(1);
            account.SetIdTo("x");
            AccountRepository.EnsurePersistent(account);
            var subAccount = GetValid(9);
            subAccount.AccountNumber = "x";
            #endregion Arrange

            #region Act
            SubAccountRepository.DbContext.BeginTransaction();
            SubAccountRepository.EnsurePersistent(subAccount);
            SubAccountRepository.DbContext.CommitTransaction();
            #endregion Act

            #region Assert
            Assert.IsFalse(subAccount.IsTransient());
            Assert.IsTrue(subAccount.IsValid());
            #endregion Assert
        }
        public void TestAccountNumberWithLongValueSaves()
        {
            AccountRepository.DbContext.BeginTransaction();
            var account = CreateValidEntities.Account(1);

            account.SetIdTo("x".RepeatTimes(10));
            AccountRepository.EnsurePersistent(account);
            #region Arrange
            var subAccount = GetValid(9);
            subAccount.AccountNumber = "x".RepeatTimes(10);
            #endregion Arrange

            #region Act
            SubAccountRepository.DbContext.BeginTransaction();
            SubAccountRepository.EnsurePersistent(subAccount);
            SubAccountRepository.DbContext.CommitTransaction();
            #endregion Act

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