public void Test_CommitTransaction_WithAutoIncrementBo_ShouldUseNumberGeneratorsInDatastore() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); IClassDef classDef = TestAutoInc.LoadClassDefWithAutoIncrementingID(); DataStoreInMemory dataStore = MockRepository.GeneratePartialMock <DataStoreInMemory>(); dataStore.Replay(); int nextAutoIncNumber = TestUtil.GetRandomInt(); dataStore.Stub(t => t.GetNextAutoIncrementingNumber(classDef)).Return(nextAutoIncNumber); ITransactionCommitter transactionCommitter = new TransactionCommitterInMemory(dataStore); TestAutoInc bo = new TestAutoInc(); bo.SetPropertyValue("testfield", "testing 123"); transactionCommitter.AddBusinessObject(bo); //---------------Assert Precondition---------------- Assert.IsFalse(bo.TestAutoIncID.HasValue); Assert.AreSame(classDef, bo.ClassDef); Assert.IsTrue(bo.Props.HasAutoIncrementingField); //---------------Execute Test ---------------------- transactionCommitter.CommitTransaction(); //---------------Test Result ----------------------- dataStore.AssertWasCalled(memory => memory.GetNextAutoIncrementingNumber(classDef)); Assert.IsNotNull(bo.TestAutoIncID); Assert.AreEqual(nextAutoIncNumber, bo.TestAutoIncID); Assert.IsFalse(bo.Status.IsDirty); }
public void Test_CommitTransaction_NonAutoIncrementingBo_ShouldNotCall_GetNextAutoIncrementingNumber() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); ContactPersonTestBO cp = GetContactPerson(); ClassDef classDef = cp.ClassDef; DataStoreInMemory dataStore = MockRepository.GeneratePartialMock <DataStoreInMemory>(); dataStore.Replay(); dataStore.Stub(t => t.GetNextAutoIncrementingNumber(classDef)).Return(1); ITransactionCommitter transactionCommitter = new TransactionCommitterInMemory(dataStore); transactionCommitter.AddBusinessObject(cp); //---------------Assert Precondition---------------- Assert.AreSame(classDef, cp.ClassDef); Assert.IsFalse(cp.Props.HasAutoIncrementingField); //---------------Execute Test ---------------------- transactionCommitter.CommitTransaction(); //---------------Test Result ----------------------- dataStore.AssertWasNotCalled(memory => memory.GetNextAutoIncrementingNumber(Arg <IClassDef> .Is.Anything)); }