Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions OptimizelySDK.Tests/ConfigTest/HttpProjectConfigManagerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,8 @@ public void TestOnReadyPromiseResolvedImmediatelyWhenDatafileIsProvided()
.WithStartByDefault()
.Build();

httpManager.OnReady().Wait();
// OnReady waits until is resolved, need to add time in case of deadlock.
httpManager.OnReady().Wait(10000);

Assert.AreEqual("15", httpManager.GetConfig().Revision);

Expand All @@ -208,7 +209,9 @@ public void TestOnReadyPromiseWaitsForProjectConfigRetrievalWhenDatafileIsNotPro
.WithStartByDefault(true)
.Build();
t.Wait();
httpManager.OnReady().Wait();

// OnReady waits until is resolved, need to add time in case of deadlock.
httpManager.OnReady().Wait(10000);
Assert.NotNull(httpManager.GetConfig());
httpManager.Dispose();
}
Expand Down Expand Up @@ -244,7 +247,7 @@ public void TestHttpConfigManagerDoesNotWaitForTheConfigWhenDeferIsTrue()
#region Notification
[Test]
public void TestHttpConfigManagerSendConfigUpdateNotificationWhenProjectConfigGetsUpdated()
{
{
var t = MockSendAsync(TestData.Datafile);

var httpManager = new HttpProjectConfigManager.Builder()
Expand All @@ -266,7 +269,7 @@ public void TestHttpConfigManagerSendConfigUpdateNotificationWhenProjectConfigGe

[Test]
public void TestHttpConfigManagerDoesNotSendConfigUpdateNotificationWhenDatafileIsProvided()
{
{
var t = MockSendAsync(TestData.Datafile, TimeSpan.FromMilliseconds(100));

var httpManager = new HttpProjectConfigManager.Builder()
Expand Down Expand Up @@ -460,7 +463,6 @@ public void TestAuthenticationHeaderWhenTokenProvided()
[Test]
public void TestFormatUrlHigherPriorityThanDefaultUrl()
{

var t = MockSendAsync();
var httpManager = new HttpProjectConfigManager.Builder()
.WithSdkKey("QBw9gFM8oTn7ogY9ANCC1z")
Expand All @@ -483,7 +485,6 @@ public Task MockSendAsync(string datafile = null, TimeSpan? delay = null, HttpSt
{
return TestHttpProjectConfigManagerUtil.MockSendAsync(HttpClientMock, datafile, delay, statusCode);
}

#endregion
}
}
14 changes: 11 additions & 3 deletions OptimizelySDK.Tests/ConfigTest/PollingProjectConfigManagerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ public class PollingProjectConfigManagerTest

[SetUp]
public void Setup()
{
{
LoggerMock = new Mock<ILogger>();
LoggerMock.Setup(l => l.Log(It.IsAny<LogLevel>(), It.IsAny<string>()));
ProjectConfig = DatafileProjectConfig.Create(TestData.Datafile, LoggerMock.Object, null);
}

[Test]
public void TestPollingConfigManagerDoesNotBlockWhenProjectConfigIsAlreadyProvided()
{
Expand All @@ -53,6 +53,7 @@ public void TestPollingConfigManagerDoesNotBlockWhenProjectConfigIsAlreadyProvid

Assert.True(stopwatch.Elapsed.Seconds == 0);
Assert.NotNull(config);
configManager.Dispose();
}

[Test]
Expand All @@ -66,6 +67,7 @@ public void TestPollingConfigManagerBlocksWhenProjectConfigIsNotProvided()
stopwatch.Stop();

Assert.True(stopwatch.Elapsed.TotalMilliseconds >= 500);
configManager.Dispose();
}

[Test]
Expand All @@ -86,6 +88,7 @@ public void TestImmediatelyCalledScheduledRequestIfPreviousRequestDelayedInRespo
// Should be called immediately after 1200 seconds. Here checking after 1300 secs.
//Thread.Sleep(200);
Assert.AreEqual(2, configManager.Counter);
configManager.Dispose();

}

Expand All @@ -99,7 +102,7 @@ public void TestTimedoutIfTakingMorethanBlockingTimeout()
configManager.Start();
var config = configManager.GetConfig();
LoggerMock.Verify(l => l.Log(LogLevel.WARN, "Timeout exceeded waiting for ProjectConfig to be set, returning null."));

configManager.Dispose();
}

[Test]
Expand All @@ -113,6 +116,7 @@ public void TestTimedoutOnlyIfSchedulerStarted()
var config = configManager.GetConfig();
sw.Stop();
Assert.GreaterOrEqual(sw.Elapsed.TotalMilliseconds, 950);
configManager.Dispose();
}

[Test]
Expand All @@ -126,6 +130,7 @@ public void TestDontTimedoutIfSchedulerNotStarted()
var config = configManager.GetConfig();
sw.Stop();
Assert.GreaterOrEqual(sw.Elapsed.TotalMilliseconds, 1000);
configManager.Dispose();
}

[Test]
Expand All @@ -142,6 +147,7 @@ public void TestReturnDatafileImmediatelyOnceGetValidDatafileRemotely()
var config = configManager.GetConfig();
Assert.NotNull(config);
Assert.AreEqual(1, configManager.Counter);
configManager.Dispose();
}

[Test]
Expand All @@ -168,6 +174,7 @@ public void TestWaitUntilValidDatfileIsNotGiven()
var config = configManager.GetConfig();
//Assert.NotNull(config);
Assert.AreEqual(3, configManager.Counter);
configManager.Dispose();
}


Expand All @@ -186,6 +193,7 @@ public void TestWaitUntilValidDatafileIsNotGivenOrTimedout()
var config = configManager.GetConfig();
Assert.Null(config);
Assert.AreEqual(3, configManager.Counter);
configManager.Dispose();
}
}
}
9 changes: 7 additions & 2 deletions OptimizelySDK.Tests/OptimizelyTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3365,8 +3365,10 @@ public void TestDFMNotificationWhenProjectConfigIsUpdated()
var optimizely = new Optimizely(httpManager, notificationCenter);
optimizely.NotificationCenter.AddNotification(NotificationCenter.NotificationType.OptimizelyConfigUpdate, NotificationCallbackMock.Object.TestConfigUpdateCallback);
httpManager.Start();

// wait till 10 seconds max, to avoid stale state in worst case.
httpManager.OnReady().Wait(10000);

httpManager.OnReady().Wait(-1);
t.Wait();
NotificationCallbackMock.Verify(nc => nc.TestConfigUpdateCallback(), Times.Once);
httpManager.Dispose();
Expand All @@ -3389,7 +3391,9 @@ public void TestDFMWhenDatafileProvidedDoesNotNotifyWithoutStart()

var optimizely = new Optimizely(httpManager);
optimizely.NotificationCenter.AddNotification(NotificationCenter.NotificationType.OptimizelyConfigUpdate, NotificationCallbackMock.Object.TestConfigUpdateCallback);
httpManager.OnReady().Wait(-1);

// added 10 secs max wait to avoid stale state.
httpManager.OnReady().Wait(10000);

NotificationCallbackMock.Verify(nc => nc.TestConfigUpdateCallback(), Times.Never);
httpManager.Dispose();
Expand Down Expand Up @@ -3833,6 +3837,7 @@ public void TestAfterDisposeAPIsNoLongerValid()
var activateAfterDispose = optimizely.Activate("test_experiment", TestUserId, new UserAttributes() {
{ "device_type", "iPhone" }, { "location", "San Francisco" } });
Assert.Null(activateAfterDispose);
httpManager.Dispose();
}

[Test]
Expand Down