@@ -709,27 +709,27 @@ private with sharing class fflib_SObjectSelectorTest
709709	static  void  toSOQL_When_PolymorphicSelect_Expect_RelatedType () {
710710		// Given		
711711
712- 		CampaignMemberSelector   cmSelector  =  new  CampaignMemberSelector (fflib_SObjectSelector .DataAccess .LEGACY );
713- 		fflib_QueryFactory  qf  =  cmSelector .newQueryFactory ();
714- 		new  LeadSelector ().configureQueryFactoryFields (qf , ' Lead '  );
715- 		new  UserSelector ().configureQueryFactoryFields (qf , ' Lead .Owner'  );
712+ 		CaseCommentSelector   ccSelector  =  new  CaseCommentSelector (fflib_SObjectSelector .DataAccess .LEGACY );
713+ 		fflib_QueryFactory  qf  =  ccSelector .newQueryFactory ();
714+ 		new  CaseSelector ().configureQueryFactoryFields (qf , ' Parent '  );
715+ 		new  UserSelector ().configureQueryFactoryFields (qf , ' Parent .Owner'  );
716716
717717
718718		Set <String > expectedSelectFields  =  new  Set <String >{
719- 				' Id'  , ' Status '  , ' Lead .Id'  , ' Lead .OwnerId'  , ' Lead .Owner.Id'  , ' Lead .Owner.UserRoleId' 
719+ 				' Id'  , ' CommentBody '  , ' Parent .Id'  , ' Parent .OwnerId'  , ' Parent .Owner.Id'  , ' Parent .Owner.UserRoleId' 
720720		};
721721		if  (UserInfo .isMultiCurrencyOrganization ()) {
722722			expectedSelectFields .add (' CurrencyIsoCode'  );
723- 			expectedSelectFields .add (' Lead .CurrencyIsoCode'  );
724- 			expectedSelectFields .add (' Lead .Owner.CurrencyIsoCode'  );  //  Because the Selector is for User; Group would not have
723+ 			expectedSelectFields .add (' Parent .CurrencyIsoCode'  );
724+ 			expectedSelectFields .add (' Parent .Owner.CurrencyIsoCode'  );  //  Because the Selector is for User; Group would not have
725725		}
726726
727727		// When
728728		String  soql  =  qf .toSOQL ();
729729
730730		// Then
731- 		Pattern  soqlPattern  =  Pattern .compile (String .format (' SELECT (.*) FROM CampaignMember  ORDER BY {0} ASC NULLS FIRST '  ,
732- 		new  List <String >{cmSelector .getOrderBy ()}));
731+ 		Pattern  soqlPattern  =  Pattern .compile (String .format (' SELECT (.*) FROM CaseComment  ORDER BY {0} ASC NULLS FIRST '  ,
732+ 		new  List <String >{ccSelector .getOrderBy ()}));
733733		Matcher  soqlMatcher  =  soqlPattern .matcher (soql );
734734		soqlMatcher .matches ();
735735
@@ -741,29 +741,29 @@ private with sharing class fflib_SObjectSelectorTest
741741	static  void  toSOQL_When_PolymorphicSelectInMulticurrency_Expect_RelatedType () {
742742		// Given
743743
744- 		CampaignMemberSelector   cmSelector  =  new  CampaignMemberSelector (fflib_SObjectSelector .DataAccess .LEGACY );
745- 		fflib_QueryFactory  qf  =  cmSelector .newQueryFactory ();
746- 		new  LeadSelector ().configureQueryFactoryFields (qf , ' Lead '  );
747- 		new  GroupSelector ().configureQueryFactoryFields (qf , ' Lead .Owner'  );
744+ 		CaseCommentSelector   ccSelector  =  new  CaseCommentSelector (fflib_SObjectSelector .DataAccess .LEGACY );
745+ 		fflib_QueryFactory  qf  =  ccSelector .newQueryFactory ();
746+ 		new  CaseSelector ().configureQueryFactoryFields (qf , ' Parent '  );
747+ 		new  GroupSelector ().configureQueryFactoryFields (qf , ' Parent .Owner'  );
748748
749749
750750		Set <String > expectedSelectFields  =  new  Set <String >{
751- 			' Id'  , ' Status '  , ' Lead .Id'  , ' Lead .OwnerId'  , ' Lead .Owner.Id' 
751+ 			' Id'  , ' CommentBody '  , ' Parent .Id'  , ' Parent .OwnerId'  , ' Parent .Owner.Id' 
752752		};
753753		Set <String > unexpectedSelectFields  =  new  Set <String >();
754754		if  (UserInfo .isMultiCurrencyOrganization ()) {
755755			expectedSelectFields .add (' CurrencyIsoCode'  );
756- 			expectedSelectFields .add (' Lead .CurrencyIsoCode'  );
756+ 			expectedSelectFields .add (' Parent .CurrencyIsoCode'  );
757757
758- 			unexpectedSelectFields .add (' Lead .Owner.CurrencyIsoCode'  ); //  Because Group does NOT have CurrencyIsoCode
758+ 			unexpectedSelectFields .add (' Parent .Owner.CurrencyIsoCode'  ); //  Because Group does NOT have CurrencyIsoCode
759759		}
760760
761761		// When
762762		String  soql  =  qf .toSOQL ();
763763		System .debug (soql );
764764
765765		// Then
766- 		Pattern  soqlPattern  =  Pattern .compile (' SELECT (.*) FROM CampaignMember  ORDER BY CreatedDate ASC NULLS FIRST '  );
766+ 		Pattern  soqlPattern  =  Pattern .compile (' SELECT (.*) FROM CaseComment  ORDER BY CreatedDate ASC NULLS FIRST '  );
767767		Matcher  soqlMatcher  =  soqlPattern .matcher (soql );
768768		soqlMatcher .matches ();
769769
@@ -780,30 +780,30 @@ private with sharing class fflib_SObjectSelectorTest
780780
781781	@IsTest
782782	static  void  toSOQL_When_SystemModePolymorphicSelect_Expect_RelatedType () {
783- 		CampaignMemberSelector   cmSelector  =  new  CampaignMemberSelector (fflib_SObjectSelector .DataAccess .SYSTEM_MODE );
784- 		fflib_QueryFactory  qf  =  cmSelector .newQueryFactory ();
785- 		new  LeadSelector ().configureQueryFactoryFields (qf , ' Lead '  );
786- 		new  UserSelector ().configureQueryFactoryFields (qf , ' Lead .Owner'  );
783+ 		CaseCommentSelector   ccSelector  =  new  CaseCommentSelector (fflib_SObjectSelector .DataAccess .SYSTEM_MODE );
784+ 		fflib_QueryFactory  qf  =  ccSelector .newQueryFactory ();
785+ 		new  CaseSelector ().configureQueryFactoryFields (qf , ' Parent '  );
786+ 		new  UserSelector ().configureQueryFactoryFields (qf , ' Parent .Owner'  );
787787
788788		List <String > expectedSelectFields  =  new  List <String >();
789789		expectedSelectFields .add (' id'  );
790- 		expectedSelectFields .add (' status '  );
790+ 		expectedSelectFields .add (' commentbody '  );
791791		if  (UserInfo .isMultiCurrencyOrganization ()) {
792792			expectedSelectFields .add (' currencyisocode'  );
793793		}
794- 		expectedSelectFields .add (' lead .ownerid'  );
795- 		expectedSelectFields .add (' lead .id'  );
794+ 		expectedSelectFields .add (' parent .ownerid'  );
795+ 		expectedSelectFields .add (' parent .id'  );
796796		if  (UserInfo .isMultiCurrencyOrganization ()) {
797- 			expectedSelectFields .add (' lead .currencyisocode'  );
797+ 			expectedSelectFields .add (' parent .currencyisocode'  );
798798		}
799- 		expectedSelectFields .add (' lead .owner.userroleid'  );
800- 		expectedSelectFields .add (' lead .owner.id'  );
799+ 		expectedSelectFields .add (' parent .owner.userroleid'  );
800+ 		expectedSelectFields .add (' parent .owner.id'  );
801801		if  (UserInfo .isMultiCurrencyOrganization ()) {
802- 			expectedSelectFields .add (' lead .owner.currencyisocode'  );
802+ 			expectedSelectFields .add (' parent .owner.currencyisocode'  );
803803		}
804804
805- 		String  expectedSOQL  =  String .format (' SELECT '   +  String .join (expectedSelectFields ,' , '  ) +  '  FROM CampaignMember  WITH SYSTEM_MODE ORDER BY {0} ASC NULLS FIRST '  ,
806- 			new  List <String >{cmSelector .getOrderBy ()});
805+ 		String  expectedSOQL  =  String .format (' SELECT '   +  String .join (expectedSelectFields ,' , '  ) +  '  FROM CaseComment  WITH SYSTEM_MODE ORDER BY {0} ASC NULLS FIRST '  ,
806+ 			new  List <String >{ccSelector .getOrderBy ()});
807807
808808		// When
809809		String  actualSOQL  =  qf .toSOQL ();
@@ -843,70 +843,70 @@ private with sharing class fflib_SObjectSelectorTest
843843		Assert .areEqual (expected ,aQF .toSOQL ());
844844	}
845845
846- 	private  class  CampaignMemberSelector  extends  fflib_SObjectSelector  {
847- 		public  CampaignMemberSelector (DataAccess  access ) {
846+ 	private  class  CaseCommentSelector  extends  fflib_SObjectSelector  {
847+ 		public  CaseCommentSelector (DataAccess  access ) {
848848			super (false , access );
849849		}
850850
851851		public  List <Schema .SObjectField > getSObjectFieldList () {
852852			return  new  List <Schema .SObjectField >{
853- 					CampaignMember .Id ,
854- 					CampaignMember . Status 
853+ 					CaseComment .Id ,
854+ 					CaseComment . CommentBody 
855855			};
856856		}
857857
858858		public  Schema.SObjectType  getSObjectType () {
859- 			return  CampaignMember .sObjectType ;
859+ 			return  CaseComment .sObjectType ;
860860		}
861861	}
862862
863- 	private  class  UserSelector  extends  fflib_SObjectSelector  {
864- 		public  UserSelector () {
863+ 	private  class  CaseSelector  extends  fflib_SObjectSelector  {
864+ 		public  CaseSelector () {
865865			super ();
866866		}
867867
868868		public  List <Schema .SObjectField > getSObjectFieldList () {
869869			return  new  List <Schema .SObjectField >{
870- 					User . UserRoleId ,
871- 					User .Id 
870+ 					Case . OwnerId ,
871+ 					Case .Id 
872872			};
873873		}
874874
875875		public  Schema.SObjectType  getSObjectType () {
876- 			return  User .sObjectType ;
876+ 			return  Case .sObjectType ;
877877		}
878878	}
879879
880- 	private  class  GroupSelector  extends  fflib_SObjectSelector  {
881- 		public  GroupSelector () {
880+ 	private  class  UserSelector  extends  fflib_SObjectSelector  {
881+ 		public  UserSelector () {
882882			super ();
883883		}
884884
885885		public  List <Schema .SObjectField > getSObjectFieldList () {
886886			return  new  List <Schema .SObjectField >{
887- 				Group .Id 
887+ 					User .UserRoleId ,
888+ 					User .Id 
888889			};
889890		}
890891
891892		public  Schema.SObjectType  getSObjectType () {
892- 			return  Group .sObjectType ;
893+ 			return  User .sObjectType ;
893894		}
894895	}
895896
896- 	private  class  LeadSelector  extends  fflib_SObjectSelector  {
897- 		public  LeadSelector () {
897+ 	private  class  GroupSelector  extends  fflib_SObjectSelector  {
898+ 		public  GroupSelector () {
898899			super ();
899900		}
900901
901902		public  List <Schema .SObjectField > getSObjectFieldList () {
902903			return  new  List <Schema .SObjectField >{
903- 					Lead .OwnerId ,
904- 					Lead .Id 
904+ 				Group .Id 
905905			};
906906		}
907907
908908		public  Schema.SObjectType  getSObjectType () {
909- 			return  Lead .sObjectType ;
909+ 			return  Group .sObjectType ;
910910		}
911911	}	
912912}
0 commit comments