Advertisement
Guest User

tests

a guest
Apr 4th, 2018
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.47 KB | None | 0 0
  1. /**
  2.  * @author javier.garcia
  3.  * @date 26/03/2018
  4.  * @copyright Frontiers Software S.L.
  5.  */
  6.  
  7. @IsTest
  8. public with sharing class DuplicateAggregatorTest {
  9.  
  10.     @IsTest
  11.     static void testAssignSameIdWhenEmailsMatch() {
  12.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  13.        
  14.         Contact con = new Contact(Email = 'test@email.com', LastName = 'Smith');
  15.         insert con;
  16.        
  17.         Contact dupCon = new Contact(Email = 'test@email.com', LastName = 'Green');
  18.        
  19.         Test.startTest();
  20.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  21.         Test.stopTest();
  22.        
  23.         System.assertEquals(2, recalculatedContacts.size());
  24.         System.assertEquals(recalculatedContacts[0].EmailSetId__c, recalculatedContacts[1].EmailSetId__c);
  25.     }
  26.    
  27.     @IsTest
  28.     static void testAssignSameIdWhenEmailsMatchComparingLeadAndContact() {
  29.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  30.    
  31.         Contact con = new Contact(Email = 'test@email.com', LastName = 'Smith');
  32.         insert con;
  33.    
  34.         Lead dupLead = new Lead(Email = 'test@email.com', LastName = 'Green', Company = 'Unknown');
  35.    
  36.         Test.startTest();
  37.         List<SObject> recalculatedRecords = DuplicateAggregator.recalculateEmailSetId(new List<Lead> { dupLead });
  38.         Test.stopTest();
  39.    
  40.         System.assertEquals(2, recalculatedRecords.size());
  41.         System.assertEquals(recalculatedRecords[0].get('EmailSetId__c'), recalculatedRecords[1].get('EmailSetId__c'));
  42.     }
  43.    
  44.     @IsTest
  45.     static void testAssignSameIdWhenEmailsMatch_Multiple() {
  46.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  47.    
  48.         Contact con = new Contact(Email = 'test@email.com', LastName = 'Smith');
  49.         Contact con2 = new Contact(AlternativeEmailAddress1__c = 'test@email.com', LastName = 'Smith2');
  50.         Contact con3 = new Contact(AlternativeEmailAddress2__c = 'test@email.com', LastName = 'Smith3');
  51.         Contact con4 = new Contact(AlternativeEmailAddress3__c = 'test@email.com', LastName = 'Smith4');
  52.         Contact con5 = new Contact(AlternativeEmailAddress4__c = 'test@email.com', LastName = 'Smith5');
  53.         Contact con6 = new Contact(AlternativeEmailAddress5__c = 'test@email.com', LastName = 'Smith6');
  54.         insert new List<Contact> {con, con2, con3, con4, con5, con6};
  55.    
  56.         Contact dupCon = new Contact(Email = 'test@email.com', LastName = 'Green');
  57.    
  58.         Test.startTest();
  59.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  60.         Test.stopTest();
  61.    
  62.         System.assertEquals(7, recalculatedContacts.size());
  63.         System.assertEquals(recalculatedContacts[0].EmailSetId__c, recalculatedContacts[1].EmailSetId__c);
  64.         System.assertEquals(recalculatedContacts[1].EmailSetId__c, recalculatedContacts[2].EmailSetId__c);
  65.         System.assertEquals(recalculatedContacts[2].EmailSetId__c, recalculatedContacts[3].EmailSetId__c);
  66.         System.assertEquals(recalculatedContacts[3].EmailSetId__c, recalculatedContacts[4].EmailSetId__c);
  67.         System.assertEquals(recalculatedContacts[4].EmailSetId__c, recalculatedContacts[5].EmailSetId__c);
  68.         System.assertEquals(recalculatedContacts[5].EmailSetId__c, recalculatedContacts[6].EmailSetId__c);
  69.     }
  70.    
  71.     @IsTest
  72.     static void testAssignDifferentIdsWhenEmailsDontMatch() {
  73.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  74.    
  75.         Contact con = new Contact(Email = 'one@email.com', LastName = 'Smith', EmailSetId__c = '12345');
  76.         insert con;
  77.    
  78.         Contact dupCon = new Contact(Email = 'two@email.com', LastName = 'Green');
  79.    
  80.         Test.startTest();
  81.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  82.         Test.stopTest();
  83.    
  84.         System.assertEquals(1, recalculatedContacts.size());
  85.         System.assertEquals(dupCon.Email, recalculatedContacts[0].Email);
  86.         System.assertNotEquals(null, recalculatedContacts[0].EmailSetId__c);
  87.     }
  88.    
  89.     @IsTest
  90.     static void testAssignDifferentIdsWhenEmailsDontMatchComparingLeadAndContact() {
  91.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  92.    
  93.         Contact con = new Contact(Email = 'one@email.com', LastName = 'Smith', EmailSetId__c = '12345');
  94.         insert con;
  95.    
  96.         Lead dupCon = new Lead(Email = 'two@email.com', LastName = 'Green', Company = 'Unknown');
  97.    
  98.         Test.startTest();
  99.         List<SObject> recalculatedRecords = DuplicateAggregator.recalculateEmailSetId(new List<Lead> { dupCon });
  100.         Test.stopTest();
  101.    
  102.         System.assertEquals(1, recalculatedRecords.size());
  103.         System.assertEquals(dupCon.Email, recalculatedRecords[0].get('Email'));
  104.         System.assertNotEquals(null, recalculatedRecords[0].get('EmailSetId__c'));
  105.     }
  106.    
  107.     @IsTest
  108.     static void testAssignDifferentIdsWhenIdsMatchButEmailsDiffer() {
  109.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  110.    
  111.         Contact con = new Contact(Email = 'cool@email.com', LastName = 'Smith', EmailSetId__c = 'qwerty');
  112.         Contact con2 = new Contact(Email = 'pretty@email.com', LastName = 'Blue', EmailSetId__c = 'qwerty');
  113.         insert new List<Contact> { con, con2 };
  114.    
  115.         Contact nonDupCon = new Contact(Email = 'nice@email.com', LastName = 'Green', EmailSetId__c = 'qwerty');
  116.        
  117.         Test.startTest();
  118.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { nonDupCon });
  119.         Test.stopTest();
  120.    
  121.         System.assertEquals(2, recalculatedContacts.size());
  122.         System.assertNotEquals(recalculatedContacts[0].EmailSetId__c, recalculatedContacts[1].EmailSetId__c);
  123.         System.assertNotEquals(recalculatedContacts[0].EmailSetId__c, nonDupCon.EmailSetId__c);
  124.         System.assertNotEquals(recalculatedContacts[1].EmailSetId__c, nonDupCon.EmailSetId__c);
  125.     }
  126.    
  127.     @IsTest
  128.     static void testAssignDifferentIdsWhenIdsMatchButEmailsDifferComparingLeadAndContact() {
  129.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  130.        
  131.         Contact con = new Contact(Email = 'cool@email.com', LastName = 'Smith', EmailSetId__c = 'qwerty');
  132.         Lead ld = new Lead(Email = 'pretty@email.com', LastName = 'Blue', EmailSetId__c = 'qwerty', Company = 'Unknown');
  133.         insert new List<SObject> { con, ld };
  134.        
  135.         Contact nonDupCon = new Contact(Email = 'nice@email.com', LastName = 'Green', EmailSetId__c = 'qwerty');
  136.        
  137.         Test.startTest();
  138.         List<SObject> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<SObject> { nonDupCon });
  139.         Test.stopTest();
  140.        
  141.         System.assertEquals(2, recalculatedContacts.size());
  142.         System.assertNotEquals(recalculatedContacts[0].get('EmailSetId__c'), recalculatedContacts[1].get('EmailSetId__c'));
  143.         System.assertNotEquals(recalculatedContacts[0].get('EmailSetId__c'), nonDupCon.EmailSetId__c);
  144.         System.assertNotEquals(recalculatedContacts[1].get('EmailSetId__c'), nonDupCon.EmailSetId__c);
  145.     }
  146.    
  147.     @IsTest
  148.     static void testAssignDifferentIdsWhenEmailIsEmpty() {
  149.         //TODO - si vienen contactos sin email, no son duplicados de nada.
  150.     }
  151.    
  152.     @IsTest
  153.     static void testAssignSameIdWhenEmailsMatchDisjointContacts() {
  154.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  155.    
  156.         Contact con = new Contact(Email = 'one@email.com', AlternativeEmailAddress1__c = 'two@email.com', LastName = 'Smith');
  157.         Contact con2 = new Contact(Email = 'two@email.com', AlternativeEmailAddress1__c = 'three@email.com', LastName = 'Smith');
  158.         Contact con3 = new Contact(Email = 'three@email.com', AlternativeEmailAddress1__c = 'four@email.com', LastName = 'Smith');
  159.         insert new List<Contact> { con, con2, con3 };
  160.    
  161.         Contact dupCon = new Contact(Email = 'four@email.com', LastName = 'Green');
  162.        
  163.         Test.startTest();
  164.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  165.         Test.stopTest();
  166.    
  167.         System.assertEquals(4, recalculatedContacts.size());
  168.         System.assertEquals(recalculatedContacts[0].EmailSetId__c, recalculatedContacts[1].EmailSetId__c);
  169.         System.assertEquals(recalculatedContacts[1].EmailSetId__c, recalculatedContacts[2].EmailSetId__c);
  170.         System.assertEquals(recalculatedContacts[2].EmailSetId__c, recalculatedContacts[3].EmailSetId__c);
  171.     }
  172.    
  173.     @IsTest
  174.     static void testAssignSameIdWhenEmailsMatchDisjointLeadsAndContacts() {
  175.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  176.    
  177.         Contact con = new Contact(Email = 'one@email.com', AlternativeEmailAddress1__c = 'two@email.com', LastName = 'Smith');
  178.         Contact con2 = new Contact(Email = 'two@email.com', AlternativeEmailAddress1__c = 'three@email.com', LastName = 'Smith');
  179.         Contact con3 = new Contact(Email = 'three@email.com', AlternativeEmailAddress1__c = 'four@email.com', LastName = 'Smith');
  180.         insert new List<Contact> { con, con2, con3 };
  181.    
  182.         Lead ld1 = new Lead(Email = 'four@email.com', AlternativeEmailAddress1__c = 'five@email.com', LastName = 'Smith', Company = 'Unknown');
  183.         Lead ld2 = new Lead(Email = 'five@email.com', AlternativeEmailAddress1__c = 'six@email.com', LastName = 'Smith', Company = 'Unknown');
  184.         Lead ld3 = new Lead(Email = 'six@email.com', AlternativeEmailAddress1__c = 'seven@email.com', LastName = 'Smith', Company = 'Unknown');
  185.         insert new List<Lead> { ld1, ld2, ld3 };
  186.    
  187.         Contact dupCon = new Contact(Email = 'seven@email.com', LastName = 'Green');
  188.    
  189.         Test.startTest();
  190.         List<SObject> recalculatedRecords = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  191.         Test.stopTest();
  192.    
  193.         System.assertEquals(7, recalculatedRecords.size());
  194.         System.assertEquals(recalculatedRecords[0].get('EmailSetId__c'), recalculatedRecords[1].get('EmailSetId__c'));
  195.         System.assertEquals(recalculatedRecords[1].get('EmailSetId__c'), recalculatedRecords[2].get('EmailSetId__c'));
  196.         System.assertEquals(recalculatedRecords[2].get('EmailSetId__c'), recalculatedRecords[3].get('EmailSetId__c'));
  197.         System.assertEquals(recalculatedRecords[3].get('EmailSetId__c'), recalculatedRecords[4].get('EmailSetId__c'));
  198.         System.assertEquals(recalculatedRecords[5].get('EmailSetId__c'), recalculatedRecords[6].get('EmailSetId__c'));
  199.     }
  200.    
  201.     @IsTest
  202.     static void testPerformanceAssigningSameIdWhenEmailsMatch_200Records() {
  203.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  204.        
  205.         List<Contact> contacts = new List<Contact>();
  206.         for(Integer i = 0; i < 100; i++) {
  207.             Contact contact = new Contact(Email = i + 'one@email.com', AlternativeEmailAddress1__c = 'three@email.com', LastName = 'Smith');
  208.             contacts.add(contact);
  209.         }
  210.    
  211.         for(Integer i = 0; i < 100; i++) {
  212.             Contact contact = new Contact(Email = i + 'two@email.com', AlternativeEmailAddress1__c = 'three@email.com', LastName = 'John');
  213.             contacts.add(contact);
  214.         }
  215.        
  216.         insert contacts;
  217.    
  218.         Contact dupCon = new Contact(Email = 'three@email.com', LastName = 'Green');
  219.    
  220.         Test.startTest();
  221.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  222.         Test.stopTest();
  223.    
  224.         System.assertEquals(201, recalculatedContacts.size());
  225.        
  226.         for(Integer i = 1; i < 199; i++) {
  227.             System.assertEquals(recalculatedContacts[i - 1].EmailSetId__c, recalculatedContacts[i].EmailSetId__c);
  228.         }
  229.     }
  230.    
  231.     @IsTest
  232.     static void testPerformanceAssigningSameIdWhenEmailsMatch_500Records() {
  233.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  234.        
  235.         List<Contact> contacts = new List<Contact>();
  236.         for(Integer i = 0; i < 250; i++) {
  237.             Contact contact = new Contact(Email = i + 'email@email.com', AlternativeEmailAddress1__c = (i+1) + 'email@email.com', LastName = 'Smith');
  238.             contacts.add(contact);
  239.         }
  240.        
  241.         for(Integer i = 250; i < 500; i++) {
  242.             Contact contact = new Contact(Email = i + 'email@email.com', AlternativeEmailAddress1__c = (i+1) + 'email@email.com', LastName = 'John');
  243.             contacts.add(contact);
  244.         }
  245.        
  246.         insert contacts;
  247.        
  248.         Contact dupCon = new Contact(Email = 'three@email.com', LastName = 'Green');
  249.        
  250.         Test.startTest();
  251.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  252.         Test.stopTest();
  253.        
  254.         System.assertEquals(501, recalculatedContacts.size());
  255.        
  256.         for(Integer i = 1; i < 499; i++) {
  257.             System.assertEquals(recalculatedContacts[i - 1].EmailSetId__c, recalculatedContacts[i].EmailSetId__c);
  258.         }
  259.     }
  260.    
  261.     //TODO - cambiar un email, pero que siga siendo duplicado.
  262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement