public void TestSaveNewPartnerWithLocation() { TDataBase db = DBAccess.Connect("TestSaveNewPartnerWithLocation"); TDBTransaction Transaction = db.BeginTransaction(IsolationLevel.Serializable); TPartnerEditUIConnector connector = new TPartnerEditUIConnector(db); PartnerEditTDS MainDS = new PartnerEditTDS(); PPartnerRow PartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS, db); TCreateTestPartnerData.CreateNewLocation(PartnerRow.PartnerKey, MainDS); DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; TSubmitChangesResult result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Transaction.Commit(); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "TPartnerEditUIConnector SubmitChanges return value"); // check the location key for this partner. should not be negative Assert.AreEqual(1, MainDS.PPartnerLocation.Rows.Count, "TPartnerEditUIConnector SubmitChanges returns one location"); Assert.Greater(MainDS.PPartnerLocation[0].LocationKey, 0, "TPartnerEditUIConnector SubmitChanges returns valid location key"); }
public void Init() { CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect("../../etc/TestServer.config"); TDataBase db = DBAccess.Connect("AddressToolsTest"); PPartnerRow Partner1 = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS, db); TestPartnerKey = Partner1.PartnerKey; //Guard assert: ensure database has been properly reset TDBTransaction ATransaction = new TDBTransaction(); DataTable ResultTable = null; string Query = string.Format("SELECT * FROM p_location WHERE p_site_key_n = {0} AND p_location_key_i = {1}", DomainManager.GSiteKey, LocationKey); db.ReadTransaction( ref ATransaction, delegate { ResultTable = ATransaction.DataBaseObj.SelectDT(Query, "CheckLocations", ATransaction); }); Assert.AreEqual(0, ResultTable.Rows.Count); }
public void TestSaveNewPartnerWithExistingLocation() { TDataBase db = DBAccess.Connect("TestSaveNewPartnerWithExistingLocation"); TDBTransaction Transaction = db.BeginTransaction(IsolationLevel.Serializable); TPartnerEditUIConnector connector = new TPartnerEditUIConnector(db); PartnerEditTDS MainDS = new PartnerEditTDS(); PPartnerRow PartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS, db); TCreateTestPartnerData.CreateNewLocation(PartnerRow.PartnerKey, MainDS); DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; TSubmitChangesResult result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Transaction.Commit(); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "saving the first partner with a location"); Int32 LocationKey = MainDS.PLocation[0].LocationKey; MainDS = new PartnerEditTDS(); Transaction = db.BeginTransaction(IsolationLevel.Serializable); PartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS, db); PPartnerLocationRow PartnerLocationRow = MainDS.PPartnerLocation.NewRowTyped(); PartnerLocationRow.SiteKey = DomainManager.GSiteKey; PartnerLocationRow.PartnerKey = PartnerRow.PartnerKey; PartnerLocationRow.LocationKey = LocationKey; MainDS.PPartnerLocation.Rows.Add(PartnerLocationRow); ResponseDS = new PartnerEditTDS(); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Transaction.Commit(); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); TDBTransaction ReadTransaction = new TDBTransaction(); db.ReadTransaction( ref ReadTransaction, delegate { PPartnerTable PartnerAtAddress = PPartnerAccess.LoadViaPLocation( DomainManager.GSiteKey, LocationKey, ReadTransaction); Assert.AreEqual(2, PartnerAtAddress.Rows.Count, "there should be two partners at this location"); }); }
public void Init() { TPetraServerConnector.Connect("../../etc/TestServer.config"); CommonNUnitFunctions.ResetDatabase(); PPartnerRow Partner1 = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); TestPartnerKey = Partner1.PartnerKey; //Guard assert: ensure database has been properly reset TDBTransaction ATransaction = null; DataTable ResultTable = null; string Query = string.Format("SELECT * FROM p_location WHERE p_site_key_n = {0} AND p_location_key_i = {1}", DomainManager.GSiteKey, LocationKey); DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref ATransaction, delegate { ResultTable = DBAccess.GetDBAccessObj(ATransaction).SelectDT(Query, "CheckLocations", ATransaction); }); Assert.AreEqual(0, ResultTable.Rows.Count); }
public void TestBankingDetails() { TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); PPartnerRow PartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); TCreateTestPartnerData.CreateNewLocation(PartnerRow.PartnerKey, MainDS); DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; TSubmitChangesResult result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "TPartnerEditUIConnector SubmitChanges return value"); connector = new TPartnerEditUIConnector(PartnerRow.PartnerKey); // add a banking detail PartnerEditTDSPBankingDetailsRow bankingDetailsRow = MainDS.PBankingDetails.NewRowTyped(true); bankingDetailsRow.AccountName = "account of " + PartnerRow.PartnerShortName; bankingDetailsRow.BankAccountNumber = new Random().Next().ToString(); bankingDetailsRow.BankingDetailsKey = (MainDS.PBankingDetails.Count + 1) * -1; bankingDetailsRow.BankKey = 43005004; bankingDetailsRow.MainAccount = true; bankingDetailsRow.BankingType = MPartnerConstants.BANKINGTYPE_BANKACCOUNT; MainDS.PBankingDetails.Rows.Add(bankingDetailsRow); PPartnerBankingDetailsRow partnerBankingDetails = MainDS.PPartnerBankingDetails.NewRowTyped(true); partnerBankingDetails.PartnerKey = PartnerRow.PartnerKey; partnerBankingDetails.BankingDetailsKey = bankingDetailsRow.BankingDetailsKey; MainDS.PPartnerBankingDetails.Rows.Add(partnerBankingDetails); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving 2:"); foreach (DataTable t in MainDS.Tables) { if ((t == MainDS.PBankingDetails) || (t == MainDS.PPartnerBankingDetails) || (t == MainDS.PDataLabelValuePartner)) { int NumRows = t.Rows.Count; for (int RowIndex = NumRows - 1; RowIndex >= 0; RowIndex -= 1) { DataRow InspectDR = t.Rows[RowIndex]; // delete all added Rows. if (InspectDR.RowState == DataRowState.Added) { InspectDR.Delete(); } } } } MainDS.AcceptChanges(); Assert.AreEqual(1, PBankingDetailsUsageAccess.CountViaPPartner(PartnerRow.PartnerKey, null), "count of main accounts for partner"); // add another account bankingDetailsRow = MainDS.PBankingDetails.NewRowTyped(true); bankingDetailsRow.AccountName = "2nd account of " + PartnerRow.PartnerShortName; bankingDetailsRow.BankAccountNumber = new Random().Next().ToString(); bankingDetailsRow.BankingDetailsKey = (MainDS.PBankingDetails.Count + 1) * -1; bankingDetailsRow.BankKey = 43005004; bankingDetailsRow.MainAccount = false; bankingDetailsRow.BankingType = MPartnerConstants.BANKINGTYPE_BANKACCOUNT; MainDS.PBankingDetails.Rows.Add(bankingDetailsRow); partnerBankingDetails = MainDS.PPartnerBankingDetails.NewRowTyped(true); partnerBankingDetails.PartnerKey = PartnerRow.PartnerKey; partnerBankingDetails.BankingDetailsKey = bankingDetailsRow.BankingDetailsKey; MainDS.PPartnerBankingDetails.Rows.Add(partnerBankingDetails); PartnerEditTDS ChangedDS = MainDS.GetChangesTyped(true); result = connector.SubmitChanges(ref ChangedDS, ref ResponseDS, out VerificationResult); MainDS.Merge(ChangedDS); foreach (DataTable t in MainDS.Tables) { if ((t == MainDS.PBankingDetails) || (t == MainDS.PPartnerBankingDetails) || (t == MainDS.PDataLabelValuePartner)) { int NumRows = t.Rows.Count; for (int RowIndex = NumRows - 1; RowIndex >= 0; RowIndex -= 1) { DataRow InspectDR = t.Rows[RowIndex]; // delete all added Rows. if (InspectDR.RowState == DataRowState.Added) { InspectDR.Delete(); } } } } MainDS.AcceptChanges(); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving 3:"); // now delete the main bank account PartnerEditTDSPBankingDetailsRow toDelete = null; foreach (PartnerEditTDSPBankingDetailsRow row in MainDS.PBankingDetails.Rows) { if (row.MainAccount) { toDelete = row; break; } } Assert.IsNotNull(toDelete, "cannot find main account"); Assert.AreEqual(true, toDelete.MainAccount, "should be the main account"); MainDS.PPartnerBankingDetails.Rows.Find(new object[] { PartnerRow.PartnerKey, toDelete.BankingDetailsKey }).Delete(); toDelete.Delete(); ChangedDS = MainDS.GetChangesTyped(true); result = connector.SubmitChanges(ref ChangedDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(1, VerificationResult.Count, "should fail because we have no main account anymore"); Assert.AreEqual( "One Bank Account of a Partner must be set as the 'Main Account'. Please select the record that should become the 'Main Account' and choose 'Set Main Account'.", VerificationResult[0].ResultText, "should fail because we have no main account anymore"); PartnerEditTDSPBankingDetailsRow otherAccount = null; foreach (PartnerEditTDSPBankingDetailsRow row in MainDS.PBankingDetails.Rows) { if ((row.RowState != DataRowState.Deleted) && !row.MainAccount) { otherAccount = row; break; } } otherAccount.MainAccount = true; ChangedDS = MainDS.GetChangesTyped(true); result = connector.SubmitChanges(ref ChangedDS, ref ResponseDS, out VerificationResult); MainDS.Merge(ChangedDS); MainDS.AcceptChanges(); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving 4:"); // now delete the last remaining bank account toDelete = MainDS.PBankingDetails[0]; Assert.AreEqual(true, toDelete.MainAccount); MainDS.PPartnerBankingDetails.Rows.Find(new object[] { PartnerRow.PartnerKey, toDelete.BankingDetailsKey }).Delete(); toDelete.Delete(); ChangedDS = MainDS.GetChangesTyped(true); result = connector.SubmitChanges(ref ChangedDS, ref ResponseDS, out VerificationResult); MainDS.Merge(ChangedDS); MainDS.AcceptChanges(); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving 5:"); }
public void TestDeleteChurch() { DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; String TextMessage; Boolean CanDeletePartner; PPartnerRow ChurchPartnerRow; PPartnerRow PartnerRow; TSubmitChangesResult result; Int64 PartnerKey; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); ChurchPartnerRow = TCreateTestPartnerData.CreateNewChurchPartner(MainDS); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create church record"); // check if church partner can be deleted (still needs to be possible at this point) CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(ChurchPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(CanDeletePartner); // create family partner and relationship to church partner PartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); PPartnerRelationshipRow RelationshipRow = MainDS.PPartnerRelationship.NewRowTyped(); RelationshipRow.PartnerKey = ChurchPartnerRow.PartnerKey; RelationshipRow.RelationName = "SUPPCHURCH"; RelationshipRow.RelationKey = PartnerRow.PartnerKey; MainDS.PPartnerRelationship.Rows.Add(RelationshipRow); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "add relationship record to church record"); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); // now deletion must not be possible since relationship as SUPPCHURCH exists CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(ChurchPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(!CanDeletePartner); // now test actual deletion of church partner ChurchPartnerRow = TCreateTestPartnerData.CreateNewChurchPartner(MainDS); PartnerKey = ChurchPartnerRow.PartnerKey; result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create church record for deletion"); // check if church record is being deleted Assert.IsTrue(TPartnerWebConnector.DeletePartner(PartnerKey, out VerificationResult)); // check that church record is really deleted Assert.IsTrue(!TPartnerServerLookups.VerifyPartner(PartnerKey)); }
public void TestDeletePerson() { DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; String TextMessage; Boolean CanDeletePartner; PPartnerRow FamilyPartnerRow; PPartnerRow UnitPartnerRow; PPersonRow PersonRow; TSubmitChangesResult result; Int64 PartnerKey; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); // create new family, location and person FamilyPartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); TCreateTestPartnerData.CreateNewLocation(FamilyPartnerRow.PartnerKey, MainDS); PersonRow = TCreateTestPartnerData.CreateNewPerson(MainDS, FamilyPartnerRow.PartnerKey, MainDS.PLocation[0].LocationKey, "Mike", "Mr", 0); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create family and person record"); // check if Family partner can be deleted (still needs to be possible at this point) CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(PersonRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(CanDeletePartner); // add a commitment for the person which means the person is not allowed to be deleted any longer UnitPartnerRow = TCreateTestPartnerData.CreateNewUnitPartner(MainDS); PmStaffDataTable CommitmentTable = new PmStaffDataTable(); PmStaffDataRow CommitmentRow = CommitmentTable.NewRowTyped(); CommitmentRow.Key = Convert.ToInt32(TSequenceWebConnector.GetNextSequence(TSequenceNames.seq_staff_data)); CommitmentRow.PartnerKey = PersonRow.PartnerKey; CommitmentRow.StartOfCommitment = DateTime.Today.Date; CommitmentRow.EndOfCommitment = DateTime.Today.AddDays(90).Date; CommitmentRow.OfficeRecruitedBy = UnitPartnerRow.PartnerKey; CommitmentRow.HomeOffice = UnitPartnerRow.PartnerKey; CommitmentRow.ReceivingField = UnitPartnerRow.PartnerKey; CommitmentTable.Rows.Add(CommitmentRow); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create unit to be used in commitment"); PmStaffDataAccess.SubmitChanges(CommitmentTable, DBAccess.GDBAccessObj.Transaction); // this should now not be allowed since person record has a commitment linked to it CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(PersonRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(!CanDeletePartner); // now test actual deletion of Person partner FamilyPartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); TCreateTestPartnerData.CreateNewLocation(FamilyPartnerRow.PartnerKey, MainDS); PersonRow = TCreateTestPartnerData.CreateNewPerson(MainDS, FamilyPartnerRow.PartnerKey, MainDS.PLocation[0].LocationKey, "Mary", "Mrs", 0); PartnerKey = PersonRow.PartnerKey; result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create family and person record to be deleted"); // check if Family record is being deleted Assert.IsTrue(TPartnerWebConnector.DeletePartner(PartnerKey, out VerificationResult)); // check that Family record is really deleted Assert.IsTrue(!TPartnerServerLookups.VerifyPartner(PartnerKey)); }
public void TestDeleteFamily() { DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; String TextMessage; Boolean CanDeletePartner; PPartnerRow FamilyPartnerRow; PFamilyRow FamilyRow; PPersonRow PersonRow; TSubmitChangesResult result; Int64 PartnerKey; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); FamilyPartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "Create family record"); // check if Family partner can be deleted (still needs to be possible at this point) CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(FamilyPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(CanDeletePartner); // add a person to the family which means the family is not allowed to be deleted any longer FamilyRow = (PFamilyRow)MainDS.PFamily.Rows[0]; FamilyRow.FamilyMembers = true; TCreateTestPartnerData.CreateNewLocation(FamilyPartnerRow.PartnerKey, MainDS); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create new location"); PartnerEditTDS PersonDS = new PartnerEditTDS(); PersonRow = TCreateTestPartnerData.CreateNewPerson(PersonDS, FamilyPartnerRow.PartnerKey, MainDS.PLocation[0].LocationKey, "Adam", "Mr", 0); PersonRow.FamilyKey = FamilyPartnerRow.PartnerKey; result = connector.SubmitChanges(ref PersonDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create person record"); CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(FamilyPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(!CanDeletePartner); // create new family and create subscription given as gift from this family: not allowed to be deleted FamilyPartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); PPublicationTable PublicationTable = PPublicationAccess.LoadByPrimaryKey("TESTPUBLICATION", DBAccess.GDBAccessObj.Transaction); if (PublicationTable.Count == 0) { // first check if frequency "Annual" exists and if not then create it if (!AFrequencyAccess.Exists("Annual", DBAccess.GDBAccessObj.Transaction)) { // set up details (e.g. bank account) for this Bank so deletion is not allowed AFrequencyTable FrequencyTable = new AFrequencyTable(); AFrequencyRow FrequencyRow = FrequencyTable.NewRowTyped(); FrequencyRow.FrequencyCode = "Annual"; FrequencyRow.FrequencyDescription = "Annual Frequency"; FrequencyTable.Rows.Add(FrequencyRow); AFrequencyAccess.SubmitChanges(FrequencyTable, DBAccess.GDBAccessObj.Transaction); } // now add the publication "TESTPUBLICATION" PPublicationRow PublicationRow = PublicationTable.NewRowTyped(); PublicationRow.PublicationCode = "TESTPUBLICATION"; PublicationRow.FrequencyCode = "Annual"; PublicationTable.Rows.Add(PublicationRow); PPublicationAccess.SubmitChanges(PublicationTable, DBAccess.GDBAccessObj.Transaction); } // make sure that "reason subscription given" exists if (!PReasonSubscriptionGivenAccess.Exists("FREE", DBAccess.GDBAccessObj.Transaction)) { // set up details (e.g. bank account) for this Bank so deletion is not allowed PReasonSubscriptionGivenTable ReasonTable = new PReasonSubscriptionGivenTable(); PReasonSubscriptionGivenRow ReasonRow = ReasonTable.NewRowTyped(); ReasonRow.Code = "FREE"; ReasonRow.Description = "Free Subscription"; ReasonTable.Rows.Add(ReasonRow); PReasonSubscriptionGivenAccess.SubmitChanges(ReasonTable, DBAccess.GDBAccessObj.Transaction); } // now add the publication "TESTPUBLICATION" to the first family record and indicate it was a gift from newly created family record PSubscriptionRow SubscriptionRow = MainDS.PSubscription.NewRowTyped(); SubscriptionRow.PublicationCode = "TESTPUBLICATION"; SubscriptionRow.PartnerKey = FamilyRow.PartnerKey; // link subscription with original family SubscriptionRow.GiftFromKey = FamilyPartnerRow.PartnerKey; // indicate that subscription is a gift from newly created family SubscriptionRow.ReasonSubsGivenCode = "FREE"; MainDS.PSubscription.Rows.Add(SubscriptionRow); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "add publication to family record"); // this should now not be allowed since partner record has a subscription linked to it CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(FamilyPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(!CanDeletePartner); // now test actual deletion of Family partner FamilyPartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); PartnerKey = FamilyPartnerRow.PartnerKey; result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create family record"); // check if Family record is being deleted Assert.IsTrue(TPartnerWebConnector.DeletePartner(PartnerKey, out VerificationResult)); // check that Family record is really deleted Assert.IsTrue(!TPartnerServerLookups.VerifyPartner(PartnerKey)); }
public void TestNewPartnerWithLocation0() { TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); PPartnerRow PartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); PPartnerLocationRow PartnerLocationRow = MainDS.PPartnerLocation.NewRowTyped(); PartnerLocationRow.SiteKey = DomainManager.GSiteKey; PartnerLocationRow.PartnerKey = PartnerRow.PartnerKey; PartnerLocationRow.LocationKey = 0; MainDS.PPartnerLocation.Rows.Add(PartnerLocationRow); DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; TSubmitChangesResult result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "Create a partner with location 0"); TCreateTestPartnerData.CreateNewLocation(PartnerRow.PartnerKey, MainDS); // remove location 0, same is done in csharp\ICT\Petra\Client\MCommon\logic\UC_PartnerAddresses.cs TUCPartnerAddressesLogic::AddRecord // Check if record with PartnerLocation.LocationKey = 0 is around > delete it DataRow PartnerLocationRecordZero = MainDS.PPartnerLocation.Rows.Find(new object[] { PartnerRow.PartnerKey, DomainManager.GSiteKey, 0 }); if (PartnerLocationRecordZero != null) { DataRow LocationRecordZero = MainDS.PLocation.Rows.Find(new object[] { DomainManager.GSiteKey, 0 }); if (LocationRecordZero != null) { LocationRecordZero.Delete(); } PartnerLocationRecordZero.Delete(); } ResponseDS = new PartnerEditTDS(); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "Replace location 0 of partner"); Assert.AreEqual(1, MainDS.PPartnerLocation.Rows.Count, "the partner should only have one location in the dataset"); // get all addresses of the partner TDBTransaction ReadTransaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref ReadTransaction, delegate { PPartnerLocationTable testPartnerLocations = PPartnerLocationAccess.LoadViaPPartner(PartnerRow.PartnerKey, ReadTransaction); Assert.AreEqual(1, testPartnerLocations.Rows.Count, "the partner should only have one location"); Assert.Greater(testPartnerLocations[0].LocationKey, 0, "TPartnerEditUIConnector SubmitChanges returns valid location key"); }); }
/// <summary> /// Creates data needed to test posting recalculations /// </summary> /// <param name="ARecipientKey">Partner Key of the recipient.</param> /// <param name="ARealRecipientLedgerNumber">What the RecipientLedgerNumber should be.</param> /// <param name="AFalseRecipientLedgerNumber">What the RecipientLedgerNumber is.</param> /// <param name="ARecurringGiftBatchNumber">Batch Number.</param> private void TestRecurringBatchSubmitRecalculations_Arrange(out long ARecipientKey, out long ARealRecipientLedgerNumber, out long AFalseRecipientLedgerNumber, out Int32 ARecurringGiftBatchNumber) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; TPartnerEditUIConnector PartnerEditUIUIConnector = new TPartnerEditUIConnector(); GiftBatchTDS MainDS = new GiftBatchTDS(); PartnerEditTDS PartnerEditDS = new PartnerEditTDS(); // this is a family partner in the test database const Int64 DONORKEY = 43005001; // create a new recipient TCreateTestPartnerData.CreateNewFamilyPartner(PartnerEditDS); ARecipientKey = PartnerEditDS.PFamily[0].PartnerKey; // create two new Unit partners TCreateTestPartnerData.CreateNewUnitPartner(PartnerEditDS); TCreateTestPartnerData.CreateNewUnitPartner(PartnerEditDS); AFalseRecipientLedgerNumber = PartnerEditDS.PPartner[0].PartnerKey; ARealRecipientLedgerNumber = PartnerEditDS.PPartner[1].PartnerKey; // create a Gift Destination for family PPartnerGiftDestinationRow GiftDestination = PartnerEditDS.PPartnerGiftDestination.NewRowTyped(true); GiftDestination.Key = TPartnerDataReaderWebConnector.GetNewKeyForPartnerGiftDestination(); GiftDestination.PartnerKey = ARecipientKey; GiftDestination.DateEffective = new DateTime(2011, 01, 01); GiftDestination.FieldKey = ARealRecipientLedgerNumber; PartnerEditDS.PPartnerGiftDestination.Rows.Add(GiftDestination); // Guard Assertions Assert.That(PartnerEditDS.PFamily[0], Is.Not.Null); Assert.That(PartnerEditDS.PPartner[0], Is.Not.Null); Assert.That(PartnerEditDS.PPartner[1], Is.Not.Null); // Submit the new PartnerEditTDS records to the database ResponseDS = new PartnerEditTDS(); Result = PartnerEditUIUIConnector.SubmitChanges(ref PartnerEditDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for PartnerEditDS failed: " + VerificationResult.BuildVerificationResultString()); // link unit to Cost Centre DataTable PartnerCostCentreTbl = TGLSetupWebConnector.LoadCostCentrePartnerLinks(FLedgerNumber, 0); DataRow PartnerCostCentreRow = PartnerCostCentreTbl.NewRow(); PartnerCostCentreRow["PartnerKey"] = ARealRecipientLedgerNumber; PartnerCostCentreRow["IsLinked"] = 4300; PartnerCostCentreTbl.Rows.Add(PartnerCostCentreRow); TGLSetupWebConnector.SaveCostCentrePartnerLinks(FLedgerNumber, PartnerCostCentreTbl); // create a new Recurring Gift Batch MainDS = TGiftTransactionWebConnector.CreateARecurringGiftBatch(FLedgerNumber); ARecurringGiftBatchNumber = MainDS.ARecurringGiftBatch[0].BatchNumber; // create a new recurring gifts ARecurringGiftRow RecurringGiftRow = MainDS.ARecurringGift.NewRowTyped(true); RecurringGiftRow.LedgerNumber = FLedgerNumber; RecurringGiftRow.BatchNumber = ARecurringGiftBatchNumber; RecurringGiftRow.DonorKey = DONORKEY; RecurringGiftRow.GiftTransactionNumber = 1; RecurringGiftRow.LastDetailNumber = 1; MainDS.ARecurringGift.Rows.Add(RecurringGiftRow); // create a new RecurringGiftDetail ARecurringGiftDetailRow RecurringGiftDetail = MainDS.ARecurringGiftDetail.NewRowTyped(true); RecurringGiftDetail.LedgerNumber = FLedgerNumber; RecurringGiftDetail.BatchNumber = ARecurringGiftBatchNumber; RecurringGiftDetail.GiftTransactionNumber = 1; RecurringGiftDetail.DetailNumber = 1; RecurringGiftDetail.RecipientLedgerNumber = AFalseRecipientLedgerNumber; RecurringGiftDetail.GiftAmount = 100; RecurringGiftDetail.MotivationGroupCode = "GIFT"; RecurringGiftDetail.MotivationDetailCode = "SUPPORT"; RecurringGiftDetail.RecipientKey = ARecipientKey; MainDS.ARecurringGiftDetail.Rows.Add(RecurringGiftDetail); // Submit the new GiftBatchTDS records to the database Result = TGiftTransactionWebConnector.SaveGiftBatchTDS(ref MainDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SaveGiftBatchTDS failed: " + VerificationResult.BuildVerificationResultString()); }