Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2018
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.78 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 testAssignSameIdWhenEmailsMatch_Multiple() {
  29.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  30.    
  31.         Contact con = new Contact(Email = 'test@email.com', LastName = 'Smith');
  32.         Contact con2 = new Contact(AlternativeEmailAddress1__c = 'test@email.com', LastName = 'Smith2');
  33.         Contact con3 = new Contact(AlternativeEmailAddress2__c = 'test@email.com', LastName = 'Smith3');
  34.         Contact con4 = new Contact(AlternativeEmailAddress3__c = 'test@email.com', LastName = 'Smith4');
  35.         Contact con5 = new Contact(AlternativeEmailAddress4__c = 'test@email.com', LastName = 'Smith5');
  36.         Contact con6 = new Contact(AlternativeEmailAddress5__c = 'test@email.com', LastName = 'Smith6');
  37.         insert new List<Contact> {con, con2, con3, con4, con5, con6};
  38.    
  39.         Contact dupCon = new Contact(Email = 'test@email.com', LastName = 'Green');
  40.    
  41.         Test.startTest();
  42.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  43.         Test.stopTest();
  44.    
  45.         System.assertEquals(7, recalculatedContacts.size());
  46.         System.assertEquals(recalculatedContacts[0].EmailSetId__c, recalculatedContacts[1].EmailSetId__c);
  47.         System.assertEquals(recalculatedContacts[1].EmailSetId__c, recalculatedContacts[2].EmailSetId__c);
  48.         System.assertEquals(recalculatedContacts[2].EmailSetId__c, recalculatedContacts[3].EmailSetId__c);
  49.         System.assertEquals(recalculatedContacts[3].EmailSetId__c, recalculatedContacts[4].EmailSetId__c);
  50.         System.assertEquals(recalculatedContacts[4].EmailSetId__c, recalculatedContacts[5].EmailSetId__c);
  51.         System.assertEquals(recalculatedContacts[5].EmailSetId__c, recalculatedContacts[6].EmailSetId__c);
  52.     }
  53.    
  54.     @IsTest
  55.     static void testAssignDifferentIdsWhenEmailsDontMatch() {
  56.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  57.    
  58.         Contact con = new Contact(Email = 'one@email.com', LastName = 'Smith', EmailSetId__c = '12345');
  59.         insert con;
  60.    
  61.         Contact dupCon = new Contact(Email = 'two@email.com', LastName = 'Green');
  62.    
  63.         Test.startTest();
  64.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  65.         Test.stopTest();
  66.    
  67.         System.assertEquals(1, recalculatedContacts.size());
  68.         System.assertEquals(dupCon.Email, recalculatedContacts[0].Email);
  69.         System.assertNotEquals(null, recalculatedContacts[0].EmailSetId__c);
  70.     }
  71.    
  72.     @IsTest
  73.     static void testAssignDifferentIdsWhenIdsMatchButEmailsDiffer() {
  74.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  75.    
  76.         Contact con = new Contact(Email = 'cool@email.com', LastName = 'Smith', EmailSetId__c = 'qwerty');
  77.         Contact con2 = new Contact(Email = 'pretty@email.com', LastName = 'Blue', EmailSetId__c = 'qwerty');
  78.         insert new List<Contact> { con, con2 };
  79.    
  80.         Contact nonDupCon = new Contact(Email = 'nice@email.com', LastName = 'Green', EmailSetId__c = 'qwerty');
  81.        
  82.         Test.startTest();
  83.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { nonDupCon });
  84.         Test.stopTest();
  85.    
  86.         System.assertEquals(2, recalculatedContacts.size());
  87.         System.assertNotEquals(recalculatedContacts[0].EmailSetId__c, recalculatedContacts[1].EmailSetId__c);
  88.         System.assertNotEquals(recalculatedContacts[0].EmailSetId__c, nonDupCon.EmailSetId__c);
  89.         System.assertNotEquals(recalculatedContacts[1].EmailSetId__c, nonDupCon.EmailSetId__c);
  90.     }
  91.    
  92.     @IsTest
  93.     static void testAssignDifferentIdsWhenIdsMatchButEmailsDiffer_Multiple() {
  94.    
  95.     }
  96.    
  97.     @IsTest
  98.     static void testAssignDifferentIdsWhenEmailIsEmpty() {
  99.         //TODO - si vienen contactos sin email, no son duplicados de nada.
  100.     }
  101.    
  102.     @IsTest
  103.     static void testAssignSameIdWhenEmailsMatchDisjointContacts() {
  104.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  105.    
  106.         Contact con = new Contact(Email = 'one@email.com', AlternativeEmailAddress1__c = 'two@email.com', LastName = 'Smith');
  107.         Contact con2 = new Contact(Email = 'two@email.com', AlternativeEmailAddress1__c = 'three@email.com', LastName = 'Smith');
  108.         Contact con3 = new Contact(Email = 'three@email.com', AlternativeEmailAddress1__c = 'four@email.com', LastName = 'Smith');
  109.         insert new List<Contact> { con, con2, con3 };
  110.    
  111.         Contact dupCon = new Contact(Email = 'four@email.com', LastName = 'Green');
  112.        
  113.         Test.startTest();
  114.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  115.         Test.stopTest();
  116.    
  117.         System.assertEquals(4, recalculatedContacts.size());
  118.         System.assertEquals(recalculatedContacts[0].EmailSetId__c, recalculatedContacts[1].EmailSetId__c);
  119.         System.assertEquals(recalculatedContacts[1].EmailSetId__c, recalculatedContacts[2].EmailSetId__c);
  120.         System.assertEquals(recalculatedContacts[2].EmailSetId__c, recalculatedContacts[3].EmailSetId__c);
  121.     }
  122.    
  123.     @IsTest
  124.     static void testPerformanceAssigningSameIdWhenEmailsMatch_200Records() {
  125.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  126.        
  127.         List<Contact> contacts = new List<Contact>();
  128.         for(Integer i = 0; i < 100; i++) {
  129.             Contact contact = new Contact(Email = i + 'one@email.com', AlternativeEmailAddress1__c = 'three@email.com', LastName = 'Smith');
  130.             contacts.add(contact);
  131.         }
  132.    
  133.         for(Integer i = 0; i < 100; i++) {
  134.             Contact contact = new Contact(Email = i + 'two@email.com', AlternativeEmailAddress1__c = 'three@email.com', LastName = 'John');
  135.             contacts.add(contact);
  136.         }
  137.        
  138.         insert contacts;
  139.    
  140.         Contact dupCon = new Contact(Email = 'three@email.com', LastName = 'Green');
  141.    
  142.         Test.startTest();
  143.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  144.         Test.stopTest();
  145.    
  146.         System.assertEquals(201, recalculatedContacts.size());
  147.        
  148.         for(Integer i = 1; i < 199; i++) {
  149.             System.assertEquals(recalculatedContacts[i - 1].EmailSetId__c, recalculatedContacts[i].EmailSetId__c);
  150.         }
  151.     }
  152.    
  153.     @IsTest
  154.     static void testPerformanceAssigningSameIdWhenEmailsMatch_500Records() {
  155.         TriggerTemplateV2.allTriggersDisabled = true; // Reason: It's not an integration test.
  156.        
  157.         List<Contact> contacts = new List<Contact>();
  158.         for(Integer i = 0; i < 250; i++) {
  159.             Contact contact = new Contact(Email = i + 'email@email.com', AlternativeEmailAddress1__c = (i+1) + 'email@email.com', LastName = 'Smith');
  160.             contacts.add(contact);
  161.         }
  162.        
  163.         for(Integer i = 250; i < 500; i++) {
  164.             Contact contact = new Contact(Email = i + 'email@email.com', AlternativeEmailAddress1__c = (i+1) + 'email@email.com', LastName = 'John');
  165.             contacts.add(contact);
  166.         }
  167.        
  168.         insert contacts;
  169.        
  170.         Contact dupCon = new Contact(Email = 'three@email.com', LastName = 'Green');
  171.        
  172.         Test.startTest();
  173.         List<Contact> recalculatedContacts = DuplicateAggregator.recalculateEmailSetId(new List<Contact> { dupCon });
  174.         Test.stopTest();
  175.        
  176.         System.assertEquals(501, recalculatedContacts.size());
  177.        
  178.         for(Integer i = 1; i < 499; i++) {
  179.             System.assertEquals(recalculatedContacts[i - 1].EmailSetId__c, recalculatedContacts[i].EmailSetId__c);
  180.         }
  181.     }
  182.    
  183.     //TODO - cambiar un email, pero que siga siendo duplicado.
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement