@@ -55,6 +55,7 @@ public class OptimizelyTest
5555 private Mock < EventProcessor > EventProcessorMock ;
5656 private NotificationCenter NotificationCenter ;
5757 private Mock < TestNotificationCallbacks > NotificationCallbackMock ;
58+ private Mock < IOdpManager > OdpManagerMock ;
5859 private Variation VariationWithKeyControl ;
5960 private Variation VariationWithKeyVariation ;
6061 private Variation GroupVariation ;
@@ -109,6 +110,8 @@ public void Initialize()
109110 CallBase = true ,
110111 } ;
111112
113+ OdpManagerMock = new Mock < IOdpManager > ( ) ;
114+
112115 DecisionServiceMock = new Mock < DecisionService > ( new Bucketer ( LoggerMock . Object ) ,
113116 ErrorHandlerMock . Object ,
114117 null , LoggerMock . Object ) ;
@@ -6166,5 +6169,62 @@ public static void SetCulture(string culture)
61666169 }
61676170
61686171 #endregion Test Culture
6172+
6173+ #region Test SendOdpEvent
6174+
6175+ [ Test ]
6176+ public void TestSendOdpEventNullAction ( )
6177+ {
6178+ var optly = new Optimizely ( TestData . OdpIntegrationDatafile , logger : LoggerMock . Object , odpManager : OdpManagerMock . Object ) ;
6179+ optly . SendOdpEvent ( action : null , identifiers : new Dictionary < string , string > ( ) , type : "type" ) ;
6180+ LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , Constants . ODP_INVALID_ACTION_MESSAGE ) ,
6181+ Times . Exactly ( 1 ) ) ;
6182+
6183+ optly . Dispose ( ) ;
6184+ }
6185+
6186+ [ Test ]
6187+ public void TestSendOdpEventEmptyStringAction ( )
6188+ {
6189+ var optly = new Optimizely ( TestData . OdpIntegrationDatafile , logger : LoggerMock . Object , odpManager : OdpManagerMock . Object ) ;
6190+ optly . SendOdpEvent ( action : "" , identifiers : new Dictionary < string , string > ( ) , type : "type" ) ;
6191+ LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , Constants . ODP_INVALID_ACTION_MESSAGE ) ,
6192+ Times . Exactly ( 1 ) ) ;
6193+
6194+ optly . Dispose ( ) ;
6195+ }
6196+ [ Test ]
6197+ public void TestSendOdpEventNullType ( )
6198+ {
6199+ var identifiers = new Dictionary < string , string > ( ) ;
6200+ var optly = new Optimizely ( TestData . OdpIntegrationDatafile , logger : LoggerMock . Object , odpManager : OdpManagerMock . Object ) ;
6201+
6202+ optly . SendOdpEvent ( action : "action" , identifiers : identifiers , type : null ) ;
6203+
6204+ LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , It . IsAny < string > ( ) ) ,
6205+ Times . Never ) ;
6206+ OdpManagerMock . Verify ( e => e . SendEvent ( "fullstack" , "action" , identifiers , null ) ,
6207+ Times . Once ) ;
6208+
6209+ optly . Dispose ( ) ;
6210+ }
6211+
6212+ [ Test ]
6213+ public void TestSendOdpEventEmptyStringType ( )
6214+ {
6215+ var identifiers = new Dictionary < string , string > ( ) ;
6216+ var optly = new Optimizely ( TestData . OdpIntegrationDatafile , logger : LoggerMock . Object , odpManager : OdpManagerMock . Object ) ;
6217+
6218+ optly . SendOdpEvent ( action : "action" , identifiers : identifiers , type : "" ) ;
6219+
6220+ LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , It . IsAny < string > ( ) ) ,
6221+ Times . Never ) ;
6222+ OdpManagerMock . Verify ( e => e . SendEvent ( "fullstack" , "action" , identifiers , null ) ,
6223+ Times . Once ) ;
6224+
6225+ optly . Dispose ( ) ;
6226+ }
6227+
6228+ #endregion Test SendOdpEvent
61696229 }
61706230}
0 commit comments