Ejemplo n.º 1
0
        public void AsyncGetExtenderConfigTest(KsiService service)
        {
            if (TestSetup.PduVersion == PduVersion.v1)
            {
                return;
            }

            ManualResetEvent waitHandle     = new ManualResetEvent(false);
            ExtenderConfig   config         = null;
            object           testObject     = new object();
            bool             isAsyncCorrect = false;

            service.BeginGetExtenderConfig(delegate(IAsyncResult ar)
            {
                try
                {
                    isAsyncCorrect = ar.AsyncState == testObject;
                    config         = service.EndGetExtenderConfig(ar);
                }
                finally
                {
                    waitHandle.Set();
                }
            }, testObject);

            Assert.IsTrue(waitHandle.WaitOne(10000), "Wait handle timed out.");

            Assert.IsNotNull(config, "Extender configuration should not be null.");
            Assert.AreEqual(true, isAsyncCorrect, "Unexpected async state.");
        }
Ejemplo n.º 2
0
        public void HAExtenderConfigRequestUsingEventHandlerTest()
        {
            // Test getting extender configuration with 1 successful and 2 unsuccessful sub-service responses.
            // Get response using ExtenderConfigChanged event handler

            IKsiService haService =
                new HAKsiService(
                    null,
                    new List <IKsiService>()
            {
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_ExtendResponsePdu_RequestId_1043101455)), 1043101455),
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_ExtenderConfigResponsePdu)), 1584727637),
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_ExtendResponsePdu_RequestId_1043101455)), 1043101454)
            },
                    null);

            ManualResetEvent waitHandle = new ManualResetEvent(false);
            ExtenderConfig   config     = null;

            haService.ExtenderConfigChanged += delegate(object sender, ExtenderConfigChangedEventArgs e)
            {
                config = e.ExtenderConfig;
                waitHandle.Set();
            };
            haService.GetExtenderConfig();
            waitHandle.WaitOne(1000);
            Assert.IsNotNull(config, "Could not get extender config using event handler.");

            Assert.AreEqual(273, config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(0, config.ParentsUris.Count, "Unexpected parent uri count");
            Assert.AreEqual(1455478441, config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(1455478442, config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 3
0
        public void HAGetConfigTwoResultsTest3()
        {
            // Test getting extender configuration with 2 successful sub-service responses

            IKsiService haService = GetHAService(
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(null, null, null, null),
            },
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-2"
                }, 1136073600, 2136073600)
            });

            ExtenderConfig config = haService.GetExtenderConfig();

            Assert.AreEqual(4, config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1, config.ParentsUris.Count, "Unexpected parent uri count");
            Assert.AreEqual("uri-2", config.ParentsUris[0], "Unexpected parent uri value at position 0");
            Assert.AreEqual(1136073600, config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(2136073600, config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 4
0
        public void HAGetConfigResultsOutOfLimitTest()
        {
            // Test getting extender configuration with 2 successful sub-service responses
            // Some values are out of bounds

            IKsiService haService = GetHAService(
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-1"
                }, 1136073601, 1136073600)
            },
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(16001, null, 1136073599, 1136073598)
            });

            ExtenderConfig config = haService.GetExtenderConfig();

            Assert.AreEqual(4, config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1, config.ParentsUris.Count, "Unexpected parent uri count");
            Assert.AreEqual("uri-1", config.ParentsUris[0], "Unexpected parent uri value at position 0");
            Assert.AreEqual(1136073601, config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.IsNull(config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 5
0
        private void RecalculateExtenderConfig()
        {
            ExtenderConfig mergedConfig = null;

            foreach (IKsiService service in ExtendingServices)
            {
                if (!_currentExtenderConfigList.ContainsKey(service))
                {
                    continue;
                }

                ExtenderConfig config = _currentExtenderConfigList[service];
                Logger.Debug("ExtenderConfig in cache: " + config + "; Sub-service: " + service.ExtenderAddress);
                mergedConfig = HAExtenderConfigRequestRunner.MergeConfigs(mergedConfig, config);
            }

            if (_currentExtenderConfig == null || !_currentExtenderConfig.Equals(mergedConfig))
            {
                Logger.Debug("New merged ExtenderConfig: " + mergedConfig);
                _currentExtenderConfig = mergedConfig;
                ExtenderConfigChanged?.Invoke(this, new ExtenderConfigChangedEventArgs(mergedConfig, this));
            }
            else
            {
                Logger.Debug("Merged ExtenderConfig not changed.");
            }
        }
Ejemplo n.º 6
0
        public void AsyncGetExtenderConfigTest()
        {
            HAKsiService haService = new HAKsiService(SigningServices, ExtendingServices, PublicationsFileService);

            ManualResetEvent waitHandle     = new ManualResetEvent(false);
            ExtenderConfig   config         = null;
            object           testObject     = new object();
            bool             isAsyncCorrect = false;

            haService.BeginGetExtenderConfig(delegate(IAsyncResult ar)
            {
                try
                {
                    isAsyncCorrect = ar.AsyncState == testObject;
                    config         = haService.EndGetExtenderConfig(ar);
                }
                finally
                {
                    waitHandle.Set();
                }
            }, testObject);

            Assert.IsTrue(waitHandle.WaitOne(10000), "Wait handle timed out.");

            Assert.IsNotNull(config, "Extender configuration should not be null.");
            Assert.AreEqual(true, isAsyncCorrect, "Unexpected async state.");
        }
Ejemplo n.º 7
0
        public void HAExtenderGetConfTest()
        {
            Ksi            ksi  = new Ksi(new HAKsiService(null, ExtendingServices, null));
            ExtenderConfig conf = ksi.GetExtenderConfig();

            Assert.NotNull(conf);
        }
Ejemplo n.º 8
0
        public void ExtenderConfigRequestStaticTest()
        {
            Ksi ksi = GetStaticKsi(Resources.KsiService_ExtenderConfigResponsePdu);

            ExtenderConfig config = ksi.GetExtenderConfig();

            Assert.AreEqual(273, config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1455478441, config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(1455478442, config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 9
0
        public void ExtenderConfigRequestWithMultiPayloadsResponseStaticTest()
        {
            // Response has multiple payloads (2 extending payloads and a configuration payload)
            Ksi ksi = GetStaticKsi(Resources.KsiService_ExtendResponsePdu_Multi_Payloads);

            ExtenderConfig config = ksi.GetExtenderConfig();

            Assert.AreEqual(273, config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1455478441, config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(1455478442, config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Merge two configurations into one taking into account consolidation rules.
        /// </summary>
        /// <param name="currentConfig"></param>
        /// <param name="newConfig"></param>
        /// <returns></returns>
        public static ExtenderConfig MergeConfigs(ExtenderConfig currentConfig, ExtenderConfig newConfig)
        {
            if (newConfig == null)
            {
                throw new ArgumentNullException(nameof(newConfig));
            }

            ulong?maxRequests       = GetMergedMaxRequests(currentConfig?.MaxRequests, newConfig.MaxRequests);
            ulong?calendarFirstTime = GetMergedCalendarFirstTime(currentConfig?.CalendarFirstTime, newConfig.CalendarFirstTime);
            ulong?calendarLastTime  = GetMergedCalendarLastTime(currentConfig?.CalendarLastTime, newConfig.CalendarLastTime, calendarFirstTime);

            return(new ExtenderConfig(
                       maxRequests,
                       currentConfig?.ParentsUris == null || currentConfig.ParentsUris.Count == 0 ? newConfig.ParentsUris : currentConfig.ParentsUris,
                       calendarFirstTime,
                       calendarLastTime));
        }
Ejemplo n.º 11
0
        public void HAGetConfigSingleResultAllNullsTest()
        {
            // Test getting extender configuration with 1 successful sub-service response
            // All the values are empty

            IKsiService haService = GetHAService(
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(null, null, null, null),
            });

            ExtenderConfig config = haService.GetExtenderConfig();

            Assert.IsNull(config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(0, config.ParentsUris.Count, "Unexpected parent uri list");
            Assert.IsNull(config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.IsNull(config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Ends HA extender configuration request and returns consolidated successful sub-service configurations.
        /// </summary>
        /// <param name="asyncResult"></param>
        /// <returns></returns>
        public ExtenderConfig EndGetExtenderConfig(HAAsyncResult asyncResult)
        {
            object[]       list   = EndRequestMulti(asyncResult);
            ExtenderConfig config = null;

            foreach (object obj in list)
            {
                ExtenderConfig conf = obj as ExtenderConfig;

                if (conf == null)
                {
                    throw new HAKsiServiceException(string.Format("Invalid request result object. Expected type: ExtenderConfig; Received type: {0}",
                                                                  obj?.GetType().ToString() ?? ""));
                }

                config = MergeConfigs(config, conf);
            }

            return(config);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// End get additional extender configuration data (async)
        /// </summary>
        /// <param name="asyncResult"></param>
        /// <returns>Extender configuration data</returns>
        public ExtenderConfig EndGetExtenderConfig(IAsyncResult asyncResult)
        {
            HAAsyncResult haAsyncResult          = GetHAAsyncResult(asyncResult);
            HAExtenderConfigRequestRunner runner = GetRequestRunner <HAExtenderConfigRequestRunner>(haAsyncResult);
            ExtenderConfig config = runner.EndGetExtenderConfig(haAsyncResult);

            if (config == null)
            {
                lock (_extenderConfigChangedLock)
                {
                    _currentExtenderConfigList.Clear();
                    _currentExtenderConfig = null;
                }

                HAKsiServiceException ex = new HAKsiServiceException("Could not get extender configuration.", runner.SubServiceErrors);
                Logger.Warn(ex);
                ExtenderConfigChangedEventArgs extenderConfigChangedEventArgs = new ExtenderConfigChangedEventArgs(ex, this);
                ExtenderConfigChanged?.Invoke(this, extenderConfigChangedEventArgs);
                throw ex;
            }

            // if sub-service config request failed then remove corresponding config from cache
            foreach (HAKsiSubServiceException ex in runner.SubServiceErrors)
            {
                if (ex.ThrownBySubService == null)
                {
                    continue;
                }

                lock (_extenderConfigChangedLock)
                {
                    if (_currentExtenderConfigList.ContainsKey(ex.ThrownBySubService))
                    {
                        _currentExtenderConfigList.Remove(ex.ThrownBySubService);
                        RecalculateExtenderConfig();
                    }
                }
            }

            return(config);
        }
Ejemplo n.º 14
0
        public void HAExtenderConfigRequestTest()
        {
            // Test getting extender configuration with 1 successful and 2 unsuccessful sub-service responses

            IKsiService haService =
                new HAKsiService(
                    null,
                    new List <IKsiService>()
            {
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_ExtendResponsePdu_RequestId_1043101455)), 1043101455),
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_ExtenderConfigResponsePdu)), 1584727637),
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_ExtendResponsePdu_RequestId_1043101455)), 1043101454)
            },
                    null);

            ExtenderConfig config = haService.GetExtenderConfig();

            Assert.AreEqual(273, config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(0, config.ParentsUris.Count, "Unexpected parent uri count");
            Assert.AreEqual(1455478441, config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(1455478442, config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 15
0
        public void HAExtenderConfigRequestWithSingleServiceTest()
        {
            // Test getting extender configuration with single sub-service
            IKsiService haService = GetHAService(
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-1"
                }, 1136073600, 2136073600)
            });

            haService.GetExtenderConfig();

            ExtenderConfig config = haService.GetExtenderConfig();

            Assert.AreEqual(4, config.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1, config.ParentsUris.Count, "Unexpected parent uri count");
            Assert.AreEqual("uri-1", config.ParentsUris[0], "Unexpected parent uri value at position 0");
            Assert.AreEqual(1136073600, config.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(2136073600, config.CalendarLastTime, "Unexpected calendar last time value");
        }
Ejemplo n.º 16
0
        public void HAGetConfigResultsWithExtendRequestTest()
        {
            // Test getting extender configurations via ExtenderConfigChanged event handler when using Extend method.
            // Testing getting different configurations in a sequence

            HAKsiService haService = GetHAService(
                new List <PduPayload>()
            {
                GetExtendResponsePayload(Resources.KsiService_ExtendResponsePdu_RequestId_1043101454),
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-1"
                }, 1136073601, 1136073602)
            },
                new List <PduPayload>()
            {
                GetExtendResponsePayload(Resources.KsiService_ExtendResponsePdu_RequestId_1043101455),
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-2"
                }, 1136073601, 1136073602)
            });

            TestKsiService secondService = (TestKsiService)haService.ExtendingServices[1];

            secondService.RequestId = 1043101455;

            ExtenderConfig   resultConf  = null;
            int              changeCount = 0;
            ManualResetEvent waitHandle  = new ManualResetEvent(false);

            haService.ExtenderConfigChanged += delegate(object sender, ExtenderConfigChangedEventArgs e)
            {
                resultConf = e.ExtenderConfig;
                changeCount++;
                if (changeCount == 2)
                {
                    waitHandle.Set();
                }
            };

            CalendarHashChain cal = haService.Extend(123);

            Assert.AreEqual(1455494400, cal.PublicationTime, "Unexpected calendar hash chain publication time.");
            waitHandle.WaitOne(1000);
            Assert.IsNotNull(resultConf, "Could not get extender config using event handler.");

            Assert.AreEqual(4, resultConf.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1, resultConf.ParentsUris.Count, "Unexpected parent uri count");
            Assert.IsTrue(resultConf.ParentsUris[0] == "uri-1" || resultConf.ParentsUris[0] == "uri-2", "Unexpected parent uri value at position 0");
            Assert.AreEqual(1136073601, resultConf.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(1136073602, resultConf.CalendarLastTime, "Unexpected calendar last time value");

            // changing extender algorithm or parent uri should not change merged config
            TestKsiService newService = (TestKsiService)GetService(new List <PduPayload>()
            {
                GetExtendResponsePayload(Resources.KsiService_ExtendResponsePdu_RequestId_1043101455),
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-2-changed"
                }, 1136073601, 1136073602)
            });

            secondService.ExtendingServiceProtocol.RequestResult = newService.ExtendingServiceProtocol.RequestResult;

            resultConf  = null;
            changeCount = 0;
            haService.Extend(123);
            Thread.Sleep(1000);
            Assert.IsNull(resultConf, "Extender config should have not changed (2nd request)");
            Assert.AreEqual(0, changeCount, "Unexpected change count (2nd request)");

            // changing max requests should change merged config
            newService = (TestKsiService)GetService(new List <PduPayload>()
            {
                GetExtendResponsePayload(Resources.KsiService_ExtendResponsePdu_RequestId_1043101455),
                GetExtenderConfigResponsePayload(5, new List <string>()
                {
                    "uri-2"
                }, 1136073601, 1136073602)
            });

            secondService.ExtendingServiceProtocol.RequestResult = newService.ExtendingServiceProtocol.RequestResult;

            waitHandle.Reset();
            resultConf  = null;
            changeCount = 0;
            haService.Extend(123);
            waitHandle.WaitOne(1000);

            Assert.IsNotNull(resultConf, "Could not get extender config using event handler (after 3rd extend request).");

            Assert.AreEqual(5, resultConf.MaxRequests, "Unexpected max requests value (after 3rd extend request)");
            Assert.AreEqual(1, resultConf.ParentsUris.Count, "Unexpected parent uri count (after 3rd extend request)");
            Assert.IsTrue(resultConf.ParentsUris[0] == "uri-1" || resultConf.ParentsUris[0] == "uri-2", "Unexpected parent uri value at position 0 (after 3rd extend request)");
            Assert.AreEqual(1136073601, resultConf.CalendarFirstTime, "Unexpected calendar first time value (after 3rd extend request)");
            Assert.AreEqual(1136073602, resultConf.CalendarLastTime, "Unexpected calendar last time value (after 3rd extend request)");

            // changing first time should change merged config
            newService = (TestKsiService)GetService(new List <PduPayload>()
            {
                GetExtendResponsePayload(Resources.KsiService_ExtendResponsePdu_RequestId_1043101455),
                GetExtenderConfigResponsePayload(5, new List <string>()
                {
                    "uri-2"
                }, 1136073600, 1136073602)
            });

            secondService.ExtendingServiceProtocol.RequestResult = newService.ExtendingServiceProtocol.RequestResult;

            waitHandle.Reset();
            resultConf  = null;
            changeCount = 0;

            haService.Extend(123);
            waitHandle.WaitOne(1000);
            Assert.IsNotNull(resultConf, "Could not get extender config using event handler (after 4th extend request).");

            Assert.AreEqual(5, resultConf.MaxRequests, "Unexpected max requests value (after 4th extend request)");
            Assert.AreEqual(1, resultConf.ParentsUris.Count, "Unexpected parent uri count (after 4th extend request)");
            Assert.IsTrue(resultConf.ParentsUris[0] == "uri-1" || resultConf.ParentsUris[0] == "uri-2", "Unexpected parent uri value at position 0 (after 4th extend request)");
            Assert.AreEqual(1136073600, resultConf.CalendarFirstTime, "Unexpected calendar first time value (after 4th extend request)");
            Assert.AreEqual(1136073602, resultConf.CalendarLastTime, "Unexpected calendar last time value (after 4th extend request)");

            // changing last time should change merged config
            newService = (TestKsiService)GetService(new List <PduPayload>()
            {
                GetExtendResponsePayload(Resources.KsiService_ExtendResponsePdu_RequestId_1043101455),
                GetExtenderConfigResponsePayload(5, new List <string>()
                {
                    "uri-2"
                }, 1136073600, 1136073603)
            });

            secondService.ExtendingServiceProtocol.RequestResult = newService.ExtendingServiceProtocol.RequestResult;

            waitHandle.Reset();
            resultConf  = null;
            changeCount = 0;

            haService.Extend(123);
            waitHandle.WaitOne(1000);
            Assert.IsNotNull(resultConf, "Could not get extender config using event handler (after 5th extend request).");

            Assert.AreEqual(5, resultConf.MaxRequests, "Unexpected max requests value (after 5th extend request)");
            Assert.AreEqual(1, resultConf.ParentsUris.Count, "Unexpected parent uri count (after 5th extend request)");
            Assert.IsTrue(resultConf.ParentsUris[0] == "uri-1" || resultConf.ParentsUris[0] == "uri-2", "Unexpected parent uri value at position 0 (after 5th extend request)");
            Assert.AreEqual(1136073600, resultConf.CalendarFirstTime, "Unexpected calendar first time value (after 5th extend request)");
            Assert.AreEqual(1136073603, resultConf.CalendarLastTime, "Unexpected calendar last time value (after 5th extend request)");

            // extending again should not change merged config
            waitHandle.Reset();
            resultConf  = null;
            changeCount = 0;

            haService.Extend(123);
            waitHandle.WaitOne(1000);
            Assert.IsNull(resultConf, "Extender config should have not changed (after 6th extend request)");
            Assert.AreEqual(0, changeCount, "Unexpected change count.");
        }
Ejemplo n.º 17
0
        public void HAGetConfigResultsAndRemoveOneTest()
        {
            // A configuration request with 2 successful sub-requests is made.
            // Then a new configuration request is made with 1 successful and 1 unsuccessful sub-requests.
            // Unsuccessful service config should be removed from cache and merged config should be recalculated

            HAKsiService haService = GetHAService(
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-1"
                }, 1136073601, 2136073601)
            },
                new List <PduPayload>()
            {
                GetExtenderConfigResponsePayload(4, new List <string>()
                {
                    "uri-2"
                }, 1136073601, 2136073601)
            });

            ManualResetEvent waitHandle = new ManualResetEvent(false);

            haService.ExtenderConfigChanged += delegate
            {
            };

            ExtenderConfig resultConf = haService.GetExtenderConfig();

            waitHandle.WaitOne(1000);

            Assert.AreEqual(4, resultConf.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1, resultConf.ParentsUris.Count, "Unexpected parent uri count");
            Assert.AreEqual(1136073601, resultConf.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(2136073601, resultConf.CalendarLastTime, "Unexpected calendar last time value");

            // change first service response so that request fails
            ((TestKsiService)haService.ExtendingServices[0]).ExtendingServiceProtocol.RequestResult =
                File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_ExtendResponsePdu_RequestId_1043101455));

            // change second service response so that a valid configuration is returned
            TestKsiService newService = (TestKsiService)GetService(new List <PduPayload>()
            {
                GetExtendResponsePayload(Resources.KsiService_ExtendResponsePdu_RequestId_1043101455),
                GetExtenderConfigResponsePayload(3, new List <string>()
                {
                    "uri-2-changed"
                }, 1136073602, 2136073600)
            });

            ((TestKsiService)haService.ExtendingServices[1]).ExtendingServiceProtocol.RequestResult = newService.ExtendingServiceProtocol.RequestResult;

            ExtenderConfigChangedEventArgs args = null;

            waitHandle = new ManualResetEvent(false);

            haService.ExtenderConfigChanged += delegate(object sender, ExtenderConfigChangedEventArgs e)
            {
                args = e;
            };

            resultConf = haService.GetExtenderConfig();

            Assert.AreEqual(3, resultConf.MaxRequests, "Unexpected max requests value");
            Assert.AreEqual(1, resultConf.ParentsUris.Count, "Unexpected parent uri count");
            Assert.AreEqual("uri-2-changed", resultConf.ParentsUris[0], "Unexpected parent uri value at position 0");
            Assert.AreEqual(1136073602, resultConf.CalendarFirstTime, "Unexpected calendar first time value");
            Assert.AreEqual(2136073600, resultConf.CalendarLastTime, "Unexpected calendar last time value");

            waitHandle.WaitOne(1000);

            Assert.IsNotNull(args, "ExtenderConfigChangedEventArgs cannot be null.");
            Assert.AreEqual(resultConf, args.ExtenderConfig, "Unexpected ExtenderConfigChangedEventArgs.ExtenderConfig.");
            Assert.IsNull(args.Exception, "ExtenderConfigChangedEventArgs.Exception cannot have value.");
            Assert.AreEqual(haService, args.KsiService, "Unexpected ExtenderConfigChangedEventArgs.KsiService");
        }
Ejemplo n.º 18
0
 private void Service_ExtenderConfigChanged(object sender, ExtenderConfigChangedEventArgs e)
 {
     _extenderConfig = e.ExtenderConfig;
     _waitHandle.Set();
 }