@@ -1628,6 +1628,8 @@ public void fetchQualifiedSegments() {
1628
1628
Mockito .when (mockODPManager .getSegmentManager ()).thenReturn (mockODPSegmentManager );
1629
1629
1630
1630
Optimizely optimizely = Optimizely .builder ()
1631
+ .withDatafile (datafile )
1632
+ .withEventProcessor (new ForwardingEventProcessor (eventHandler , null ))
1631
1633
.withODPManager (mockODPManager )
1632
1634
.build ();
1633
1635
@@ -1640,9 +1642,33 @@ public void fetchQualifiedSegments() {
1640
1642
verify (mockODPSegmentManager ).getQualifiedSegments ("test-user" , Collections .singletonList (ODPSegmentOption .RESET_CACHE ));
1641
1643
}
1642
1644
1645
+ @ Test
1646
+ public void fetchQualifiedSegmentsErrorWhenConfigIsInvalid () {
1647
+ ProjectConfigManager mockProjectConfigManager = mock (ProjectConfigManager .class );
1648
+ Mockito .when (mockProjectConfigManager .getConfig ()).thenReturn (null );
1649
+ ODPEventManager mockODPEventManager = mock (ODPEventManager .class );
1650
+ ODPSegmentManager mockODPSegmentManager = mock (ODPSegmentManager .class );
1651
+ ODPManager mockODPManager = mock (ODPManager .class );
1652
+
1653
+ Mockito .when (mockODPManager .getEventManager ()).thenReturn (mockODPEventManager );
1654
+ Mockito .when (mockODPManager .getSegmentManager ()).thenReturn (mockODPSegmentManager );
1655
+
1656
+ Optimizely optimizely = Optimizely .builder ()
1657
+ .withConfigManager (mockProjectConfigManager )
1658
+ .withODPManager (mockODPManager )
1659
+ .build ();
1660
+
1661
+ OptimizelyUserContext userContext = optimizely .createUserContext ("test-user" );
1662
+
1663
+ assertFalse (userContext .fetchQualifiedSegments ());
1664
+ logbackVerifier .expectMessage (Level .ERROR , "Optimizely instance is not valid, failing fetchQualifiedSegments call." );
1665
+ }
1666
+
1643
1667
@ Test
1644
1668
public void fetchQualifiedSegmentsError () {
1645
1669
Optimizely optimizely = Optimizely .builder ()
1670
+ .withDatafile (datafile )
1671
+ .withEventProcessor (new ForwardingEventProcessor (eventHandler , null ))
1646
1672
.build ();
1647
1673
OptimizelyUserContext userContext = optimizely .createUserContext ("test-user" );
1648
1674
@@ -1667,6 +1693,8 @@ public void fetchQualifiedSegmentsAsync() throws InterruptedException {
1667
1693
Mockito .when (mockODPManager .getSegmentManager ()).thenReturn (mockODPSegmentManager );
1668
1694
1669
1695
Optimizely optimizely = Optimizely .builder ()
1696
+ .withDatafile (datafile )
1697
+ .withEventProcessor (new ForwardingEventProcessor (eventHandler , null ))
1670
1698
.withODPManager (mockODPManager )
1671
1699
.build ();
1672
1700
@@ -1698,6 +1726,8 @@ public void fetchQualifiedSegmentsAsync() throws InterruptedException {
1698
1726
@ Test
1699
1727
public void fetchQualifiedSegmentsAsyncError () throws InterruptedException {
1700
1728
Optimizely optimizely = Optimizely .builder ()
1729
+ .withDatafile (datafile )
1730
+ .withEventProcessor (new ForwardingEventProcessor (eventHandler , null ))
1701
1731
.build ();
1702
1732
1703
1733
OptimizelyUserContext userContext = optimizely .createUserContext ("test-user" );
@@ -1713,6 +1743,57 @@ public void fetchQualifiedSegmentsAsyncError() throws InterruptedException {
1713
1743
logbackVerifier .expectMessage (Level .ERROR , "Audience segments fetch failed (ODP is not enabled)." );
1714
1744
}
1715
1745
1746
+ @ Test
1747
+ public void fetchQualifiedSegmentsAsyncErrorWhenConfigIsInvalid () throws InterruptedException {
1748
+ ProjectConfigManager mockProjectConfigManager = mock (ProjectConfigManager .class );
1749
+ Mockito .when (mockProjectConfigManager .getConfig ()).thenReturn (null );
1750
+ ODPEventManager mockODPEventManager = mock (ODPEventManager .class );
1751
+ ODPSegmentManager mockODPSegmentManager = mock (ODPSegmentManager .class );
1752
+ ODPManager mockODPManager = mock (ODPManager .class );
1753
+
1754
+ Mockito .when (mockODPManager .getEventManager ()).thenReturn (mockODPEventManager );
1755
+ Mockito .when (mockODPManager .getSegmentManager ()).thenReturn (mockODPSegmentManager );
1756
+
1757
+ Optimizely optimizely = Optimizely .builder ()
1758
+ .withConfigManager (mockProjectConfigManager )
1759
+ .withODPManager (mockODPManager )
1760
+ .build ();
1761
+
1762
+ OptimizelyUserContext userContext = optimizely .createUserContext ("test-user" );
1763
+
1764
+ CountDownLatch countDownLatch = new CountDownLatch (1 );
1765
+ userContext .fetchQualifiedSegments ((Boolean isFetchSuccessful ) -> {
1766
+ assertFalse (isFetchSuccessful );
1767
+ countDownLatch .countDown ();
1768
+ });
1769
+
1770
+ countDownLatch .await ();
1771
+ assertEquals (null , userContext .getQualifiedSegments ());
1772
+ logbackVerifier .expectMessage (Level .ERROR , "Optimizely instance is not valid, failing fetchQualifiedSegments call." );
1773
+ }
1774
+
1775
+ @ Test
1776
+ public void identifyUserErrorWhenConfigIsInvalid () {
1777
+ ODPEventManager mockODPEventManager = mock (ODPEventManager .class );
1778
+ ODPSegmentManager mockODPSegmentManager = mock (ODPSegmentManager .class );
1779
+ ODPManager mockODPManager = mock (ODPManager .class );
1780
+ ProjectConfigManager mockProjectConfigManager = mock (ProjectConfigManager .class );
1781
+ Mockito .when (mockProjectConfigManager .getConfig ()).thenReturn (null );
1782
+ Mockito .when (mockODPManager .getEventManager ()).thenReturn (mockODPEventManager );
1783
+ Mockito .when (mockODPManager .getSegmentManager ()).thenReturn (mockODPSegmentManager );
1784
+
1785
+ Optimizely optimizely = Optimizely .builder ()
1786
+ .withConfigManager (mockProjectConfigManager )
1787
+ .withODPManager (mockODPManager )
1788
+ .build ();
1789
+
1790
+ optimizely .createUserContext ("test-user" );
1791
+ verify (mockODPEventManager , never ()).identifyUser ("test-user" );
1792
+ Mockito .reset (mockODPEventManager );
1793
+
1794
+ logbackVerifier .expectMessage (Level .ERROR , "Optimizely instance is not valid, failing identifyUser call." );
1795
+ }
1796
+
1716
1797
@ Test
1717
1798
public void identifyUser () {
1718
1799
ODPEventManager mockODPEventManager = mock (ODPEventManager .class );
@@ -1723,6 +1804,8 @@ public void identifyUser() {
1723
1804
Mockito .when (mockODPManager .getSegmentManager ()).thenReturn (mockODPSegmentManager );
1724
1805
1725
1806
Optimizely optimizely = Optimizely .builder ()
1807
+ .withDatafile (datafile )
1808
+ .withEventProcessor (new ForwardingEventProcessor (eventHandler , null ))
1726
1809
.withODPManager (mockODPManager )
1727
1810
.build ();
1728
1811
0 commit comments