示例#1
0
        public void TestAfterDisposeGetOptimizelyConfigIsNoLongerValid()
        {
            var httpManager = new HttpProjectConfigManager.Builder()
                              .WithSdkKey("QBw9gFM8oTn7ogY9ANCC1z")
                              .WithDatafile(TestData.Datafile)
                              .WithPollingInterval(TimeSpan.FromMilliseconds(50000))
                              .WithBlockingTimeoutPeriod(TimeSpan.FromMilliseconds(500))
                              .Build(true);
            var optimizely = new Optimizely(httpManager);

            httpManager.Start();

            var optimizelyConfig = optimizely.GetOptimizelyConfig();

            Assert.NotNull(optimizelyConfig);
            Assert.NotNull(optimizelyConfig.ExperimentsMap);
            Assert.NotNull(optimizelyConfig.FeaturesMap);
            Assert.NotNull(optimizelyConfig.Revision);

            optimizely.Dispose();

            var optimizelyConfigAfterDispose = optimizely.GetOptimizelyConfig();

            Assert.Null(optimizelyConfigAfterDispose);
        }
        public void TestHttpConfigManagerSendConfigUpdateNotificationWhenProjectConfigGetsUpdated()
        {
            var t = MockSendAsync(TestData.Datafile);

            var httpManager = new HttpProjectConfigManager.Builder()
                              .WithSdkKey("QBw9gFM8oTn7ogY9ANCC1z")
                              .WithLogger(LoggerMock.Object)
                              .WithPollingInterval(TimeSpan.FromMilliseconds(1000))
                              .WithBlockingTimeoutPeriod(TimeSpan.FromMilliseconds(1000))
                              .WithStartByDefault(false)
                              .Build(true);

            httpManager.NotifyOnProjectConfigUpdate += NotificationCallbackMock.Object.TestConfigUpdateCallback;
            httpManager.Start();

            Assert.NotNull(httpManager.GetConfig());
            Task.Delay(200).Wait();
            NotificationCallbackMock.Verify(nc => nc.TestConfigUpdateCallback(), Times.AtLeastOnce);
            httpManager.Dispose();
        }