/// <summary> /// Test that the data was merged correctly! /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Bank Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Bank Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="ABankingDetailsKey">BankingDetailsKey for the BankingDetails record being tested</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> void TestMergeTwoBanks_SecondaryAsserts(long AFromPartnerKey, long AToPartnerKey, int ABankingDetailsKey, ref TPartnerEditUIConnector AConnector) { PartnerEditTDS MainDS = new PartnerEditTDS(); // Read Partners from the database after they have been merged MainDS.PPartner.Merge(PPartnerAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); MainDS.PBank.Merge(PBankAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); MainDS.PBankingDetails.Merge(PBankingDetailsAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); PPartnerMergeTable MergeTable = PPartnerMergeAccess.LoadByPrimaryKey(AFromPartnerKey, DBAccess.GDBAccessObj.Transaction); PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AFromPartnerKey }); PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AToPartnerKey }); PBankRow FromBankRow = (PBankRow)MainDS.PBank.Rows.Find(new object[] { AFromPartnerKey }); PBankRow ToBankRow = (PBankRow)MainDS.PBank.Rows.Find(new object[] { AToPartnerKey }); PBankingDetailsRow BankingDetailsRow = (PBankingDetailsRow)MainDS.PBankingDetails.Rows.Find(new object[] { ABankingDetailsKey }); // Check that what we are about to check is there... Assert.That(MergeTable, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(FromBankRow, Is.Not.Null); Assert.That(ToBankRow, Is.Not.Null); Assert.That(BankingDetailsRow, Is.Not.Null); // // Check that Partners have been merged correctly // // Checking the two Banks Assert.AreEqual(FromPartnerRow.PartnerKey.ToString() + ", TestBank", ToPartnerRow.PartnerShortName, "merge two Banks"); Assert.AreEqual(FromBankRow.BranchName, ToBankRow.BranchName, "merge two Banks"); Assert.AreEqual(AToPartnerKey, BankingDetailsRow.BankKey, "merge two Banks"); // Checking the MergeTable Assert.IsNotNull(MergeTable.Rows[0], "merge two Banks"); }
public void TestDeleteOrganisation() { DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; String TextMessage; Boolean CanDeletePartner; PPartnerRow OrganisationPartnerRow; TSubmitChangesResult result; Int64 PartnerKey; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); OrganisationPartnerRow = TCreateTestPartnerData.CreateNewOrganisationPartner(MainDS); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create organisation record"); // check if organisation partner can be deleted (still needs to be possible at this point) CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(OrganisationPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(CanDeletePartner); // now test actual deletion of Organisation partner PartnerKey = OrganisationPartnerRow.PartnerKey; Assert.IsTrue(TPartnerWebConnector.DeletePartner(PartnerKey, out VerificationResult)); // check that Organisation record is really deleted Assert.IsTrue(!TPartnerServerLookups.VerifyPartner(PartnerKey)); }
public void TestDeleteVenue() { DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; String TextMessage; Boolean CanDeletePartner; PPartnerRow VenuePartnerRow; TSubmitChangesResult result; Int64 PartnerKey; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); VenuePartnerRow = TCreateTestPartnerData.CreateNewVenuePartner(MainDS); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create venue record"); // check if Venue partner can be deleted (still needs to be possible at this point) CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(VenuePartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(CanDeletePartner); // set up buildings for this venue so deletion is not allowed PcBuildingTable BuildingTable = new PcBuildingTable(); PcBuildingRow BuildingRow = BuildingTable.NewRowTyped(); BuildingRow.VenueKey = VenuePartnerRow.PartnerKey; BuildingRow.BuildingCode = "Test"; BuildingTable.Rows.Add(BuildingRow); PcBuildingAccess.SubmitChanges(BuildingTable, DBAccess.GDBAccessObj.Transaction); // now deletion must not be possible since a building is linked to the venue CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(VenuePartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(!CanDeletePartner); // now test actual deletion of venue partner VenuePartnerRow = TCreateTestPartnerData.CreateNewVenuePartner(MainDS); PartnerKey = VenuePartnerRow.PartnerKey; result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create venue record for deletion"); // check if Venue record is being deleted Assert.IsTrue(TPartnerWebConnector.DeletePartner(PartnerKey, out VerificationResult)); // check that Venue 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 TestDeleteUnit() { DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; String TextMessage; Boolean CanDeletePartner; PPartnerRow UnitPartnerRow; PUnitRow UnitRow; TSubmitChangesResult result; Int64 PartnerKey; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); UnitPartnerRow = TCreateTestPartnerData.CreateNewUnitPartner(MainDS); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // check if Unit partner can be deleted (still needs to be possible at this point) CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(UnitPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(CanDeletePartner); // set unit type to Key Ministry which means it is not allowed to be deleted any longer UnitRow = (PUnitRow)MainDS.PUnit.Rows[0]; UnitRow.UnitTypeCode = MPartnerConstants.UNIT_TYPE_KEYMIN; result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "set unit type to " + MPartnerConstants.UNIT_TYPE_KEYMIN); CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(UnitPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(!CanDeletePartner); // now test actual deletion of Unit partner UnitPartnerRow = TCreateTestPartnerData.CreateNewUnitPartner(MainDS); PartnerKey = UnitPartnerRow.PartnerKey; result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create unit record for deletion"); // check if Unit record is being deleted Assert.IsTrue(TPartnerWebConnector.DeletePartner(PartnerKey, out VerificationResult)); // check that Unit record is really deleted Assert.IsTrue(!TPartnerServerLookups.VerifyPartner(PartnerKey)); }
private Int64 CreateNewPartnerKeyWithUnit() { TVerificationResultCollection VerificationResult; TSubmitChangesResult result; DataSet ResponseDS = new PartnerEditTDS(); Int64 retVal = 0; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); PPartnerRow UnitPartnerRow = TCreateTestPartnerData.CreateNewUnitPartnerWithTypeCode(MainDS, "KEY-MIN"); if (UnitPartnerRow != null) { result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); if (result == TSubmitChangesResult.scrOK) { retVal = UnitPartnerRow.PartnerKey; } } return retVal; }
public void TestSaveNewPartnerWithExistingLocation() { 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, "saving the first partner with a location"); Int32 LocationKey = MainDS.PLocation[0].LocationKey; MainDS = new PartnerEditTDS(); PartnerRow = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); PPartnerLocationRow PartnerLocationRow = MainDS.PPartnerLocation.NewRowTyped(); PartnerLocationRow.SiteKey = DomainManager.GSiteKey; PartnerLocationRow.PartnerKey = PartnerRow.PartnerKey; PartnerLocationRow.LocationKey = LocationKey; PartnerLocationRow.TelephoneNumber = PartnerRow.PartnerKey.ToString(); MainDS.PPartnerLocation.Rows.Add(PartnerLocationRow); ResponseDS = new PartnerEditTDS(); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "There was a critical error when saving:"); TDBTransaction ReadTransaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, 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"); }); }
/// <summary> /// Creates two Person Partners, a Family Partner and AP Info for the From Partner. /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Person Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Person Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AFamilyPartnerKey">Partner Key of the Family Partner that is in the Partner Merge Test.</param> /// <param name="AAPDocumentID">Document ID for APDocument that is created for testing.</param> /// <param name="ALedgerNumber">Ledger Number for the GiftBatch that is created for testing.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> private void TestMergeAPInfo_Arrange(out long AFromPartnerKey, out long AToPartnerKey, out long AFamilyPartnerKey, out int AAPDocumentID, out int ALedgerNumber, TPartnerEditUIConnector AConnector) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; PartnerEditTDS MainDS = new PartnerEditTDS(); AccountsPayableTDS APDS = new AccountsPayableTDS(); // create two new Person Partners, one family and APInfo for From Partner TCreateTestPartnerData.CreateFamilyWithTwoPersonRecords(MainDS); PPartnerRow FamilyPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[0]; PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[1]; PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[2]; AApDocumentRow APDocumentRow = TCreateTestPartnerData.CreateNewAPInfo(FromPartnerRow.PartnerKey, ref APDS); // Guard Assertions Assert.That(FamilyPartnerRow, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(APDocumentRow, Is.Not.Null); Assert.AreEqual(1, APDS.AApSupplier.Rows.Count); AFamilyPartnerKey = FamilyPartnerRow.PartnerKey; AFromPartnerKey = FromPartnerRow.PartnerKey; AToPartnerKey = ToPartnerRow.PartnerKey; AAPDocumentID = APDocumentRow.ApDocumentId; ALedgerNumber = APDocumentRow.LedgerNumber; // Submit the new records to the database ResponseDS = new PartnerEditTDS(); Result = AConnector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for two Persons failed: " + VerificationResult.BuildVerificationResultString()); // Submit the new Supplier record to the database TSupplierEditUIConnector Connector = new TSupplierEditUIConnector(); Result = Connector.SubmitChanges(ref APDS); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for AP Info failed"); // Submit the new Document record to the database Result = TAPTransactionWebConnector.SaveAApDocument(ref APDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for AP Info failed: " + VerificationResult.BuildVerificationResultString()); }
/// <summary> /// Test that the data was merged correctly! /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Person Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Person Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AAPDocumentID">Document ID for APDocument that is created for testing.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> void TestMergeAPInfo_SecondaryAsserts(long AFromPartnerKey, long AToPartnerKey, int AAPDocumentID, ref TPartnerEditUIConnector AConnector) { PartnerEditTDS MainDS = new PartnerEditTDS(); AccountsPayableTDS APDS = new AccountsPayableTDS(); // Read Partners from the database after they have been merged MainDS.PPartner.Merge(PPartnerAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); MainDS.PPerson.Merge(PPersonAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); APDS.AApSupplier.Merge(AApSupplierAccess.LoadViaPPartner(AToPartnerKey, DBAccess.GDBAccessObj.Transaction)); APDS.AApDocument.Merge(AApDocumentAccess.LoadByPrimaryKey(AAPDocumentID, DBAccess.GDBAccessObj.Transaction)); PPartnerMergeTable MergeTable = PPartnerMergeAccess.LoadByPrimaryKey(AFromPartnerKey, DBAccess.GDBAccessObj.Transaction); PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AFromPartnerKey }); PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AToPartnerKey }); AApSupplierRow SupplierRow = (AApSupplierRow)APDS.AApSupplier.Rows[0]; AApDocumentRow DocumentRow = (AApDocumentRow)APDS.AApDocument.Rows[0]; // Check that what we are about to check is there... Assert.That(MergeTable, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(DocumentRow, Is.Not.Null); // // Check that Partners have been merged correctly // // Checking the two Persons Assert.AreEqual("MERGED", FromPartnerRow.StatusCode, "merge AP info"); Assert.AreEqual("ACTIVE", ToPartnerRow.StatusCode, "merge AP info"); Assert.AreEqual(AToPartnerKey, DocumentRow.PartnerKey, "AP gift info"); Assert.That(SupplierRow, Is.Not.Null, "Supplier was not correctly merged; it cannot be loaded from the DB as expected"); // Checking the MergeTable Assert.IsNotNull(MergeTable.Rows[0], "merge AP info"); }
/// <summary> /// Test that the data was merged correctly! /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Person Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Person Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="ALedgerNumber">Ledger Number for the GiftBatch that is created for testing.</param> /// <param name="ABatchNumber">Batch Number for the GiftBatch that is created for testing.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> void TestMergeRecurringGiftInfo_SecondaryAsserts(long AFromPartnerKey, long AToPartnerKey, int ALedgerNumber, int ABatchNumber, ref TPartnerEditUIConnector AConnector) { PartnerEditTDS MainDS = new PartnerEditTDS(); GiftBatchTDS GiftDS = new GiftBatchTDS(); // Read Partners from the database after they have been merged MainDS.PPartner.Merge(PPartnerAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); MainDS.PPerson.Merge(PPersonAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); GiftDS.ARecurringGift.Merge(ARecurringGiftAccess.LoadViaARecurringGiftBatch(ALedgerNumber, ABatchNumber, DBAccess.GDBAccessObj.Transaction)); GiftDS.ARecurringGiftDetail.Merge(ARecurringGiftDetailAccess.LoadViaARecurringGiftBatch(ALedgerNumber, ABatchNumber, DBAccess.GDBAccessObj.Transaction)); PPartnerMergeTable MergeTable = PPartnerMergeAccess.LoadByPrimaryKey(AFromPartnerKey, DBAccess.GDBAccessObj.Transaction); PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AFromPartnerKey }); PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AToPartnerKey }); ARecurringGiftRow GiftRow = (ARecurringGiftRow)GiftDS.ARecurringGift.Rows[0]; ARecurringGiftDetailRow GiftDetailRow = (ARecurringGiftDetailRow)GiftDS.ARecurringGiftDetail.Rows[0]; // Check that what we are about to check is there... Assert.That(MergeTable, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(GiftRow, Is.Not.Null); Assert.That(GiftDetailRow, Is.Not.Null); // // Check that Partners have been merged correctly // // Checking the two Persons Assert.AreEqual("MERGED", FromPartnerRow.StatusCode, "merge gift info"); Assert.AreEqual("ACTIVE", ToPartnerRow.StatusCode, "merge gift info"); Assert.AreEqual(AToPartnerKey, GiftRow.DonorKey, "merge gift info"); Assert.AreEqual(AToPartnerKey, GiftDetailRow.RecipientKey, "merge gift info"); Assert.AreEqual(AToPartnerKey, GiftDetailRow.RecipientLedgerNumber, "merge gift info"); // Checking the MergeTable Assert.IsNotNull(MergeTable.Rows[0], "merge gift info"); }
public void TestMergeAPInfo() { long FromPartnerKey; long ToPartnerKey; long FamilyPartnerKey; int APDocumentID; int LedgerNumber; long[] SiteKeys = new long[0]; int[] LocationKeys = new int[0]; TVerificationResultCollection VerificationResult; TPartnerEditUIConnector UIConnector = new TPartnerEditUIConnector(); // // Arrange: Create two Person Partners in one Family Partner with one Location // TestMergeAPInfo_Arrange(out FromPartnerKey, out ToPartnerKey, out FamilyPartnerKey, out APDocumentID, out LedgerNumber, UIConnector); // // Act: Merge the two Person Partners! // bool result = TMergePartnersWebConnector.MergeTwoPartners(FromPartnerKey, ToPartnerKey, TPartnerClass.PERSON, TPartnerClass.PERSON, SiteKeys, LocationKeys, null, -1, FCategories, ref DifferentFamilies); // // Assert // // Primary Assert: Tests that Partner Merge reports that it was successful! Assert.AreEqual(true, result, "Merging two Person Partners"); // Secondary Asserts: Test that the data was merged correctly! TestMergeAPInfo_SecondaryAsserts(FromPartnerKey, ToPartnerKey, APDocumentID, ref UIConnector); // Cleanup: Delete test records List <int>DocumentID = new List <int>(); DocumentID.Add(APDocumentID); TAPTransactionWebConnector.DeleteAPDocuments(LedgerNumber, DocumentID); AccountsPayableTDS APDS = TAPTransactionWebConnector.LoadAApSupplier(LedgerNumber, ToPartnerKey); APDS.AApSupplier.Rows[0].Delete(); AApSupplierAccess.SubmitChanges(APDS.AApSupplier, DBAccess.GDBAccessObj.Transaction); TPartnerWebConnector.DeletePartner(FromPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(ToPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(FamilyPartnerKey, out VerificationResult); }
/// <summary> /// Creates two Person Partners, a Family Partner and Gift Info for the From Partner. /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Person Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Person Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AFamilyPartnerKey">Partner Key of the Family Partner that is in the Partner Merge Test.</param> /// <param name="ALedgerNumber">Ledger Number for the GiftBatch that is created for testing.</param> /// <param name="ABatchNumber">Batch Number for the GiftBatch that is created for testing.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> private void TestMergeRecurringGiftInfo_Arrange(out long AFromPartnerKey, out long AToPartnerKey, out long AFamilyPartnerKey, out int ALedgerNumber, out int ABatchNumber, TPartnerEditUIConnector AConnector) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; PartnerEditTDS MainDS = new PartnerEditTDS(); GiftBatchTDS GiftDS = new GiftBatchTDS(); // create two new Person Partners, one family and GiftInfo for From Partner TCreateTestPartnerData.CreateFamilyWithTwoPersonRecords(MainDS); PPartnerRow FamilyPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[0]; PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[1]; PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[2]; ARecurringGiftBatchRow GiftBatchRow = TCreateTestPartnerData.CreateNewRecurringGiftInfo(FromPartnerRow.PartnerKey, ref GiftDS); // Guard Assertions Assert.That(FamilyPartnerRow, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(GiftBatchRow, Is.Not.Null); Assert.AreEqual(1, GiftDS.ARecurringGift.Rows.Count); Assert.AreEqual(1, GiftDS.ARecurringGiftDetail.Rows.Count); AFamilyPartnerKey = FamilyPartnerRow.PartnerKey; AFromPartnerKey = FromPartnerRow.PartnerKey; AToPartnerKey = ToPartnerRow.PartnerKey; ALedgerNumber = GiftBatchRow.LedgerNumber; ABatchNumber = GiftBatchRow.BatchNumber; // Submit the new records to the database ResponseDS = new PartnerEditTDS(); Result = AConnector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for two Persons failed: " + VerificationResult.BuildVerificationResultString()); // Submit the new Gift Info records to the database Result = TGiftTransactionWebConnector.SaveGiftBatchTDS(ref GiftDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for Recurring Gift Info failed: " + VerificationResult.BuildVerificationResultString()); }
public void TestMergeRecurringGiftInfo() { long FromPartnerKey; long ToPartnerKey; long FamilyPartnerKey; int LedgerNumber; int BatchNumber; long[] SiteKeys = new long[0]; int[] LocationKeys = new int[0]; TVerificationResultCollection VerificationResult; TPartnerEditUIConnector UIConnector = new TPartnerEditUIConnector(); // // Arrange: Create two Person Partners in one Family Partner with one Location // TestMergeRecurringGiftInfo_Arrange(out FromPartnerKey, out ToPartnerKey, out FamilyPartnerKey, out LedgerNumber, out BatchNumber, UIConnector); // // Act: Merge the two Person Partners! // bool result = TMergePartnersWebConnector.MergeTwoPartners(FromPartnerKey, ToPartnerKey, TPartnerClass.PERSON, TPartnerClass.PERSON, SiteKeys, LocationKeys, null, -1, FCategories, ref DifferentFamilies); // // Assert // // Primary Assert: Tests that Partner Merge reports that it was successful! Assert.AreEqual(true, result, "Merging two Person Partners"); // Secondary Asserts: Test that the data was merged correctly! TestMergeRecurringGiftInfo_SecondaryAsserts(FromPartnerKey, ToPartnerKey, LedgerNumber, BatchNumber, ref UIConnector); // Cleanup: Delete test records GiftBatchTDS GiftDS = TGiftTransactionWebConnector.LoadARecurringGiftBatchAndRelatedData(LedgerNumber, BatchNumber); GiftDS.ARecurringGiftDetail.Rows[0].Delete(); GiftDS.ARecurringGift.Rows[0].Delete(); GiftDS.ARecurringGiftBatch.Rows[0].Delete(); TGiftTransactionWebConnector.SaveGiftBatchTDS(ref GiftDS, out VerificationResult); TPartnerWebConnector.DeletePartner(FromPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(ToPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(FamilyPartnerKey, out VerificationResult); }
/// <summary> /// Creates a Bank Partner a Person Partner and a Family Partner. /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Bank Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Person Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AToFamilyKey">Partner Key of the Family Partner of the Person Partner.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> private void TestMergeBankToPerson_Arrange(out long AFromPartnerKey, out long AToPartnerKey, out long AToFamilyKey, TPartnerEditUIConnector AConnector) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; PartnerEditTDS MainDS = new PartnerEditTDS(); // Create one new Bank Partner and one new Person Partner PPartnerRow FromPartnerRow = TCreateTestPartnerData.CreateNewBankPartner(MainDS); TCreateTestPartnerData.CreateFamilyWithOnePersonRecord(MainDS); PPersonRow ToPartnerRow = (PPersonRow)MainDS.PPerson.Rows[0]; PFamilyRow ToFamilyRow = (PFamilyRow)MainDS.PFamily.Rows[0]; // Guard Assertions Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(ToFamilyRow, Is.Not.Null); AFromPartnerKey = FromPartnerRow.PartnerKey; AToPartnerKey = ToPartnerRow.PartnerKey; AToFamilyKey = ToFamilyRow.PartnerKey; // Submit the new Partner records to the database ResponseDS = new PartnerEditTDS(); Result = AConnector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for bank and person failed: " + VerificationResult.BuildVerificationResultString()); }
/// <summary> /// Test that the data was merged correctly! /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Church Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Organisation Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> void TestMergeChurchToOrganisation_SecondaryAsserts(long AFromPartnerKey, long AToPartnerKey, ref TPartnerEditUIConnector AConnector) { PartnerEditTDS MainDS = new PartnerEditTDS(); // Read Partners from the database after they have been merged MainDS.PPartner.Merge(PPartnerAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); MainDS.PChurch.Merge(PChurchAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); MainDS.POrganisation.Merge(POrganisationAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); PPartnerMergeTable MergeTable = PPartnerMergeAccess.LoadByPrimaryKey(AFromPartnerKey, DBAccess.GDBAccessObj.Transaction); PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AFromPartnerKey }); PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AToPartnerKey }); PChurchRow FromChurchRow = (PChurchRow)MainDS.PChurch.Rows.Find(new object[] { AFromPartnerKey }); POrganisationRow ToOrganisationRow = (POrganisationRow)MainDS.POrganisation.Rows.Find(new object[] { AToPartnerKey }); // Check that what we are about to check is there... Assert.That(MergeTable, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(FromChurchRow, Is.Not.Null); Assert.That(ToOrganisationRow, Is.Not.Null); // // Check that Partners have been merged correctly // // Checking the church and the Organisation Assert.AreEqual(FromPartnerRow.PartnerKey.ToString() + ", TestChurch", ToPartnerRow.PartnerShortName, "merge Church to Organisation"); Assert.AreEqual("MERGED", FromPartnerRow.StatusCode, "merge Church to Organisation"); Assert.AreEqual("ACTIVE", ToPartnerRow.StatusCode, "merge Church to Organisation"); Assert.AreEqual(FromChurchRow.ContactPartnerKey, ToOrganisationRow.ContactPartnerKey, "merge Church to Organisation"); // Checking the MergeTable Assert.IsNotNull(MergeTable.Rows[0], "merge Church to organisation"); }
public void TestMergePMData() { long FromPartnerKey; long ToPartnerKey; long FamilyPartnerKey; long[] SiteKeys = new long[0]; int[] LocationKeys = new int[0]; int DataLabelKey; TVerificationResultCollection VerificationResult; TPartnerEditUIConnector UIConnector = new TPartnerEditUIConnector(); // // Arrange: Create two Person Partners in one Family Partner with one Location // TestMergePMData_Arrange(out FromPartnerKey, out ToPartnerKey, out FamilyPartnerKey, out DataLabelKey, UIConnector); // // Act: Merge the two Person Partners! // bool result = TMergePartnersWebConnector.MergeTwoPartners(FromPartnerKey, ToPartnerKey, TPartnerClass.PERSON, TPartnerClass.PERSON, SiteKeys, LocationKeys, null, -1, FCategories, ref DifferentFamilies); // // Assert // // Primary Assert: Tests that Partner Merge reports that it was successful! Assert.AreEqual(true, result, "Merging two Person Partners"); // Secondary Asserts: Test that the data was merged correctly! TestMergePMData_SecondaryAsserts(FromPartnerKey, ToPartnerKey, DataLabelKey, ref UIConnector); // Cleanup: Delete test records TPartnerWebConnector.DeletePartner(FromPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(ToPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(FamilyPartnerKey, out VerificationResult); PDataLabelTable DataLabelTable = PDataLabelAccess.LoadByPrimaryKey(DataLabelKey, DBAccess.GDBAccessObj.Transaction); DataLabelTable.Rows[0].Delete(); PDataLabelAccess.SubmitChanges(DataLabelTable, DBAccess.GDBAccessObj.Transaction); }
/// <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; PPartnerTypeRow PartnerTypeRow = PartnerEditDS.PPartnerType.NewRowTyped(); PartnerTypeRow.PartnerKey = ARealRecipientLedgerNumber; PartnerTypeRow.TypeCode = MPartnerConstants.PARTNERTYPE_COSTCENTRE; PartnerEditDS.PPartnerType.Rows.Add(PartnerTypeRow); // 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()); }
/// <summary> /// Creates two Person Partners, a Family Partner and AP Info for the From Partner. /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Person Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Person Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AFamilyPartnerKey">Partner Key of the Family Partner that is in the Partner Merge Test.</param> /// <param name="ADataLabelKey">Key for PDataLabel that is created for testing.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> private void TestMergePMData_Arrange(out long AFromPartnerKey, out long AToPartnerKey, out long AFamilyPartnerKey, out int ADataLabelKey, TPartnerEditUIConnector AConnector) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; PartnerEditTDS MainDS = new PartnerEditTDS(); IndividualDataTDS IndividualDS = new IndividualDataTDS(); // create two new Person Partners, one family and PM Data for both Partners TCreateTestPartnerData.CreateFamilyWithTwoPersonRecords(MainDS); PPartnerRow FamilyPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[0]; PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[1]; PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows[2]; PDataLabelTable DataLabel = TCreateTestPartnerData.CreateNewPMData(FromPartnerRow.PartnerKey, ToPartnerRow.PartnerKey, IndividualDS); PmPassportDetailsRow row = (PmPassportDetailsRow)IndividualDS.PmPassportDetails.Rows[0]; // Guard Assertions Assert.That(FamilyPartnerRow, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(DataLabel, Is.Not.Null); Assert.AreEqual(1, IndividualDS.PDataLabelValuePartner.Rows.Count); Assert.AreEqual(1, IndividualDS.PmPassportDetails.Rows.Count); Assert.AreEqual(2, IndividualDS.PmPersonalData.Rows.Count); AFamilyPartnerKey = FamilyPartnerRow.PartnerKey; AFromPartnerKey = FromPartnerRow.PartnerKey; AToPartnerKey = ToPartnerRow.PartnerKey; ADataLabelKey = ((PDataLabelRow)DataLabel.Rows[0]).Key; // Submit the new records to the database ResponseDS = new PartnerEditTDS(); Result = AConnector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for two Persons failed: " + VerificationResult.BuildVerificationResultString()); // Submit the new DataLabel record to the database PDataLabelAccess.SubmitChanges(DataLabel, DBAccess.GDBAccessObj.Transaction); // Submit the new Document record to the database MainDS.Merge(IndividualDS); Result = TIndividualDataWebConnector.SubmitChangesServerSide(ref IndividualDS, ref MainDS, DBAccess.GDBAccessObj.Transaction, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for PM Data failed: " + VerificationResult.BuildVerificationResultString()); }
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; PartnerLocationRow.TelephoneNumber = PartnerRow.PartnerKey.ToString(); 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> /// Test that the data was merged correctly! /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Person Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Person Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="ADataLabelKey">Key for PDataLabel that is created for testing.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> void TestMergePMData_SecondaryAsserts(long AFromPartnerKey, long AToPartnerKey, int ADataLabelKey, ref TPartnerEditUIConnector AConnector) { PartnerEditTDS MainDS = new PartnerEditTDS(); IndividualDataTDS IndividualDS = new IndividualDataTDS(); // Read Partners from the database after they have been merged MainDS.PPartner.Merge(PPartnerAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); MainDS.PPerson.Merge(PPersonAccess.LoadAll(DBAccess.GDBAccessObj.Transaction)); IndividualDS.PDataLabelValuePartner.Merge(PDataLabelValuePartnerAccess.LoadViaPDataLabel(ADataLabelKey, DBAccess.GDBAccessObj.Transaction)); IndividualDS.PmPassportDetails.Merge(PmPassportDetailsAccess.LoadViaPPerson(AToPartnerKey, DBAccess.GDBAccessObj.Transaction)); IndividualDS.PmPersonalData.Merge(PmPersonalDataAccess.LoadViaPPerson(AToPartnerKey, DBAccess.GDBAccessObj.Transaction)); PPartnerMergeTable MergeTable = PPartnerMergeAccess.LoadByPrimaryKey(AFromPartnerKey, DBAccess.GDBAccessObj.Transaction); PPartnerRow FromPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AFromPartnerKey }); PPartnerRow ToPartnerRow = (PPartnerRow)MainDS.PPartner.Rows.Find(new object[] { AToPartnerKey }); PDataLabelValuePartnerRow DataLabelValuePartnerRow = (PDataLabelValuePartnerRow)IndividualDS.PDataLabelValuePartner.Rows[0]; PmPassportDetailsRow PassportDetailsRow = (PmPassportDetailsRow)IndividualDS.PmPassportDetails.Rows[0]; PmPersonalDataRow PersonalDataRow = (PmPersonalDataRow)IndividualDS.PmPersonalData.Rows[0]; // Check that what we are about to check is there... Assert.That(MergeTable, Is.Not.Null); Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(DataLabelValuePartnerRow, Is.Not.Null); Assert.That(PassportDetailsRow, Is.Not.Null); Assert.That(PersonalDataRow, Is.Not.Null); // // Check that Partners have been merged correctly // // Checking the two Persons Assert.AreEqual("MERGED", FromPartnerRow.StatusCode, "merge PM data"); Assert.AreEqual("ACTIVE", ToPartnerRow.StatusCode, "merge PM data"); Assert.AreEqual(AToPartnerKey, DataLabelValuePartnerRow.PartnerKey, "merge PM data"); Assert.AreEqual(175, PersonalDataRow.HeightCm, "merge PM data"); Assert.AreEqual(95, PersonalDataRow.WeightKg, "merge PM data"); // Checking the MergeTable Assert.IsNotNull(MergeTable.Rows[0], "merge PM data"); }
public void TestFamilyPropagateNewLocation() { TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); TCreateTestPartnerData.CreateFamilyWithTwoPersonRecords(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:"); // now change on partner location. should ask about everyone else // it seems, the change must be to PLocation. In Petra 2.3, changes to the PartnerLocation are not propagated // MainDS.PPartnerLocation[0].DateGoodUntil = new DateTime(2011, 01, 01); Assert.AreEqual(1, MainDS.PLocation.Rows.Count, "there should be only one address for the whole family"); MainDS.PLocation[0].County = "different"; 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.scrInfoNeeded, result, "should ask if the partner locations of the other members of the family should be changed as well"); // TODO: simulate the dialog where the user selects which people to propagate the address change for. // TODO: what about replacing the whole address? // TODO: adding a new location for all members of the family? }
public void TestMergeUnitToBank() { long FromPartnerKey; long ToPartnerKey; TVerificationResultCollection VerificationResult; TPartnerEditUIConnector UIConnector = new TPartnerEditUIConnector(); // // Arrange: Create two Partners // TestMergeUnitToBank_Arrange(out FromPartnerKey, out ToPartnerKey, UIConnector); // // Act: Merge the two Partners! // bool result = TMergePartnersWebConnector.MergeTwoPartners(FromPartnerKey, ToPartnerKey, TPartnerClass.UNIT, TPartnerClass.BANK, null, null, null, -1, FCategories, ref DifferentFamilies); // // Assert // // Primary Assert: Tests that Partner Merge reports that it was UNSUCCESSFUL! Assert.AreEqual(false, result, "Merging Unit to Bank"); // Cleanup: Delete test records TPartnerWebConnector.DeletePartner(FromPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(ToPartnerKey, out VerificationResult); }
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)); }
/// <summary> /// Creates a Unit Partner and a Bank Partner. /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Unit Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Bank Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> private void TestMergeUnitToBank_Arrange(out long AFromPartnerKey, out long AToPartnerKey, TPartnerEditUIConnector AConnector) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; PartnerEditTDS MainDS = new PartnerEditTDS(); // Create one new Unit Partner and one new Bank Partner PPartnerRow FromPartnerRow = TCreateTestPartnerData.CreateNewUnitPartner(MainDS); PPartnerRow ToPartnerRow = TCreateTestPartnerData.CreateNewBankPartner(MainDS); // Guard Assertions Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); AFromPartnerKey = FromPartnerRow.PartnerKey; AToPartnerKey = ToPartnerRow.PartnerKey; // Submit the new Partner records to the database ResponseDS = new PartnerEditTDS(); Result = AConnector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for unit and bank failed: " + VerificationResult.BuildVerificationResultString()); }
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 TestMergeChurchToOrganisation() { long FromPartnerKey; long ToPartnerKey; TVerificationResultCollection VerificationResult; TPartnerEditUIConnector UIConnector = new TPartnerEditUIConnector(); // // Arrange: Create new Partners // TestMergeChurchToOrganisation_Arrange(out FromPartnerKey, out ToPartnerKey, UIConnector); // // Act: Merge the new Partners! // bool result = TMergePartnersWebConnector.MergeTwoPartners(FromPartnerKey, ToPartnerKey, TPartnerClass.CHURCH, TPartnerClass.ORGANISATION, null, null, null, -1, FCategories, ref DifferentFamilies); // // Assert // // Primary Assert: Tests that Partner Merge reports that it was successful! Assert.AreEqual(true, result, "Merging Church to Organisation"); // Secondary Asserts: Test that the data was merged correctly! TestMergeChurchToOrganisation_SecondaryAsserts(FromPartnerKey, ToPartnerKey, ref UIConnector); // Cleanup: Delete test records TPartnerWebConnector.DeletePartner(FromPartnerKey, out VerificationResult); TPartnerWebConnector.DeletePartner(ToPartnerKey, out VerificationResult); }
public void TestDeleteBank() { DataSet ResponseDS = new PartnerEditTDS(); TVerificationResultCollection VerificationResult; String TextMessage; Boolean CanDeletePartner; PPartnerRow BankPartnerRow; TSubmitChangesResult result; Int64 PartnerKey; TPartnerEditUIConnector connector = new TPartnerEditUIConnector(); PartnerEditTDS MainDS = new PartnerEditTDS(); BankPartnerRow = TCreateTestPartnerData.CreateNewBankPartner(MainDS); result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create bank record"); // check if Bank partner can be deleted (still needs to be possible at this point) CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(BankPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(CanDeletePartner); // set up details (e.g. bank account) for this Bank so deletion is not allowed PBankingDetailsTable BankingDetailsTable = new PBankingDetailsTable(); PBankingDetailsRow BankingDetailsRow = BankingDetailsTable.NewRowTyped(); BankingDetailsRow.BankKey = BankPartnerRow.PartnerKey; BankingDetailsRow.BankingType = 0; BankingDetailsRow.BankingDetailsKey = Convert.ToInt32(TSequenceWebConnector.GetNextSequence(TSequenceNames.seq_bank_details)); BankingDetailsTable.Rows.Add(BankingDetailsRow); PBankingDetailsAccess.SubmitChanges(BankingDetailsTable, DBAccess.GDBAccessObj.Transaction); // now deletion must not be possible since a bank account is set up for the bank CanDeletePartner = TPartnerWebConnector.CanPartnerBeDeleted(BankPartnerRow.PartnerKey, out TextMessage); if (TextMessage.Length > 0) { TLogging.Log(TextMessage); } Assert.IsTrue(!CanDeletePartner); // now test actual deletion of venue partner BankPartnerRow = TCreateTestPartnerData.CreateNewBankPartner(MainDS); PartnerKey = BankPartnerRow.PartnerKey; result = connector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); Assert.AreEqual(TSubmitChangesResult.scrOK, result, "create bank partner for deletion"); // check if Venue record is being deleted Assert.IsTrue(TPartnerWebConnector.DeletePartner(PartnerKey, out VerificationResult)); // check that Bank record is really deleted Assert.IsTrue(!TPartnerServerLookups.VerifyPartner(PartnerKey)); }
/// <summary> /// Creates a Church Partner and an Organisation Partner. /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Church Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Organisation Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> private void TestMergeChurchToOrganisation_Arrange(out long AFromPartnerKey, out long AToPartnerKey, TPartnerEditUIConnector AConnector) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; PartnerEditTDS MainDS = new PartnerEditTDS(); // Create two new Partners PPartnerRow FromPartnerRow = TCreateTestPartnerData.CreateNewChurchPartner(MainDS); PPartnerRow ToPartnerRow = TCreateTestPartnerData.CreateNewOrganisationPartner(MainDS); // Guard Assertions Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); AFromPartnerKey = FromPartnerRow.PartnerKey; AToPartnerKey = ToPartnerRow.PartnerKey; PChurchRow FromChurchRow = (PChurchRow)MainDS.PChurch.Rows.Find(new object[] { AFromPartnerKey }); POrganisationRow ToOrganisationRow = (POrganisationRow)MainDS.POrganisation.Rows.Find(new object[] { AToPartnerKey }); // Guard Assertions Assert.That(FromChurchRow, Is.Not.Null); Assert.That(ToOrganisationRow, Is.Not.Null); // Modify records so that they contain different data ToPartnerRow.PartnerShortName = ""; FromChurchRow.ContactPartnerKey = AToPartnerKey; ToOrganisationRow.ContactPartnerKey = 0; // Submit the new Partner records to the database ResponseDS = new PartnerEditTDS(); Result = AConnector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for church and organisation failed: " + VerificationResult.BuildVerificationResultString()); }
public void TestSaveNewPartnerWithLocation() { 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"); // 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"); }
/// <summary> /// Creates two Bank Partners and a Bank Partner. /// </summary> /// <param name="AFromPartnerKey">Partner Key of the Bank Partner that is the 'From' Partner in the Partner Merge Test.</param> /// <param name="AToPartnerKey">Partner Key of the Bank Partner that is the 'To' Partner in the Partner Merge Test.</param> /// <param name="ABankingDetailsKey">BankingDetailsKey for the BankingDetails record being tested</param> /// <param name="AConnector">Instantiated Partner Edit UIConnector.</param> private void TestMergeTwoBanks_Arrange(out long AFromPartnerKey, out long AToPartnerKey, out int ABankingDetailsKey, TPartnerEditUIConnector AConnector) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; PartnerEditTDS MainDS = new PartnerEditTDS(); // Create two new Bank Partners and a new BankingDetails record PPartnerRow FromPartnerRow = TCreateTestPartnerData.CreateNewBankPartner(MainDS); PPartnerRow ToPartnerRow = TCreateTestPartnerData.CreateNewBankPartner(MainDS); PartnerEditTDSPBankingDetailsRow BankingDetailsRow = TCreateTestPartnerData.CreateNewBankingRecords(FromPartnerRow.PartnerKey, MainDS); // Guard Assertions Assert.That(FromPartnerRow, Is.Not.Null); Assert.That(ToPartnerRow, Is.Not.Null); Assert.That(BankingDetailsRow, Is.Not.Null); AFromPartnerKey = FromPartnerRow.PartnerKey; AToPartnerKey = ToPartnerRow.PartnerKey; ABankingDetailsKey = BankingDetailsRow.BankingDetailsKey; PBankRow FromBankRow = (PBankRow)MainDS.PBank.Rows.Find(new object[] { AFromPartnerKey }); PBankRow ToBankRow = (PBankRow)MainDS.PBank.Rows.Find(new object[] { AToPartnerKey }); // Guard Assertions Assert.That(FromBankRow, Is.Not.Null); Assert.That(ToBankRow, Is.Not.Null); // Modify records so that they contain different data ToPartnerRow.PartnerShortName = ""; ToBankRow.BranchName = ""; BankingDetailsRow.BankKey = AFromPartnerKey; // Submit the two new Bank Partner records to the database ResponseDS = new PartnerEditTDS(); Result = AConnector.SubmitChanges(ref MainDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for two Banks failed: " + VerificationResult.BuildVerificationResultString()); }