Ejemplo n.º 1
0
        public void TestIntegration_UpdateDB_WhenCurrentNumberIs2_ShouldUpdateDB()
        {
            //---------------Set up test pack-------------------
            var numberType = RandomValueGen.GetRandomString();

            //Create an instance of the number for a specific type of number (e.g. Invoice number)
            var dbTransactionCommitter = BORegistry.DataAccessor.CreateTransactionCommitter();
            IDBNumberGenerator numGen  = new DatabaseNumberGenerator(numberType, "numbergenerator", 1, "NumberType", "SequenceNumber");
            var updateTransaction      = numGen.GetUpdateTransaction() as ITransactionalDB;
            var currentNumber          = numGen.GetNextNumberInt();

            //---------------Assert Precondition----------------
            Assert.IsInstanceOf <TransactionCommitterDB>(dbTransactionCommitter);
            Assert.IsNotNull(updateTransaction);
            Assert.AreEqual(2, currentNumber);
            //---------------Execute Test ----------------------
            dbTransactionCommitter.AddTransaction(updateTransaction);
            dbTransactionCommitter.CommitTransaction();
            //---------------Test Result -----------------------

            IDBNumberGenerator numGen2 = new DatabaseNumberGenerator(numberType, "numbergenerator", 1, "NumberType", "SequenceNumber");
            var nextNumberInt          = numGen2.GetNextNumberInt();

            Assert.AreEqual(3, nextNumberInt);
        }
Ejemplo n.º 2
0
        public void TestIntegration_GetPersistSql_WhenNumberEQ2_ShouldReturnCorrectSQL()
        {
            //---------------Set up test pack-------------------
            var numberType = RandomValueGen.GetRandomString();

            //Create an instance of the number for a specific type of number (e.g. Invoice number)
            IDBNumberGenerator numGen = new DatabaseNumberGenerator(numberType, "numbergenerator", 0, "NumberType", "SequenceNumber");
            var updateTransaction     = numGen.GetUpdateTransaction() as ITransactionalDB;

            numGen.GetNextNumberInt();
            var currentNumber = numGen.GetNextNumberInt();

            //---------------Assert Precondition----------------
            Assert.IsNotNull(updateTransaction);
            Assert.AreEqual(2, currentNumber);
            //---------------Execute Test ----------------------
            var sqlStatements = updateTransaction.GetPersistSql();
            //---------------Test Result -----------------------
            var sqlStatement = sqlStatements.FirstOrDefault();

            Assert.IsNotNull(sqlStatement);
            var stringStatement = sqlStatement.Statement.ToString();

            StringAssert.StartsWith(" update numbergenerator", stringStatement);
        }
Ejemplo n.º 3
0
        public void TestIntegration_UpdateAsRolledBack_ThenGetNextNumber_ShouldResetNumberToOriginalNumber()
        {
            //See GetNextNumber_WhenWasOne_ShouldReturnTwo Test for what would happen if the UpdateAsRolledBack Did not happen
            //---------------Set up test pack-------------------
            var numberType = RandomValueGen.GetRandomString();

            //Create an instance of the number for a specific type of number (e.g. Invoice number)
            IDBNumberGenerator numGen = new DatabaseNumberGenerator(numberType, "numbergenerator", 0, "NumberType", "SequenceNumber");
            var updateTransaction     = numGen.GetUpdateTransaction();

            //---------------Assert Precondition----------------
            Assert.AreEqual(1, numGen.GetNextNumberInt());
            //---------------Execute Test ----------------------
            updateTransaction.UpdateAsRolledBack();
            var nextNumberInt = numGen.GetNextNumberInt();

            //---------------Test Result -----------------------
            Assert.AreEqual(1, nextNumberInt);
        }