public void PollingJobs() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("PollingJobs"); Assert.AreEqual(3, configuration.PollingJobs.Count()); IPollingJobConfiguration config = configuration.PollingJobs.First(); Assert.AreEqual(typeof(FakePollingJob), config.ImplementationType); Assert.AreEqual(TimeSpan.FromMinutes(1), config.PollInterval); Assert.IsTrue(config.IsMaster); Assert.IsFalse(config.IsActive); Assert.IsFalse(config.IsConcurrent); config = configuration.PollingJobs.Skip(1).First(); Assert.AreEqual(typeof(FakePollingJob2), config.ImplementationType); Assert.AreEqual(TimeSpan.FromMinutes(2), config.PollInterval); Assert.IsFalse(config.IsMaster); Assert.IsTrue(config.IsActive); Assert.IsFalse(config.IsConcurrent); config = configuration.PollingJobs.Skip(2).First(); Assert.AreEqual(typeof(FakePollingJob3), config.ImplementationType); Assert.AreEqual(TimeSpan.FromMinutes(3), config.PollInterval); Assert.IsFalse(config.IsMaster); Assert.IsTrue(config.IsActive); Assert.IsTrue(config.IsConcurrent); }
public void PollingQueues() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("PollingQueues"); Assert.AreEqual(3, configuration.PollingQueues.Count()); ITaskProcessorPollingQueueConfiguration config = configuration.PollingQueues.First(); Assert.AreEqual("A", config.Key); Assert.AreEqual(TimeSpan.FromMinutes(1), config.PollInterval); Assert.IsTrue(config.IsMaster); Assert.IsFalse(config.IsActive); Assert.IsFalse(config.IsConcurrent); Assert.AreEqual(0, config.MaxWorkers); config = configuration.PollingQueues.Skip(1).First(); Assert.AreEqual("B", config.Key); Assert.AreEqual(TimeSpan.FromMinutes(2), config.PollInterval); Assert.IsFalse(config.IsMaster); Assert.IsTrue(config.IsActive); Assert.IsFalse(config.IsConcurrent); Assert.AreEqual(5, config.MaxWorkers); config = configuration.PollingQueues.Skip(2).First(); Assert.AreEqual("C", config.Key); Assert.AreEqual(TimeSpan.FromMinutes(3), config.PollInterval); Assert.IsFalse(config.IsMaster); Assert.IsTrue(config.IsActive); Assert.IsTrue(config.IsConcurrent); Assert.AreEqual(10, config.MaxWorkers); }
public void NegativeMaxTasks2() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("NegativeMaxTasks2"); if (configuration.Tasks[typeof(FakeTask)].MaxWorkers > 0) { } }
public void NegativeMaxTasks1() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("NegativeMaxTasks1"); if (configuration.Tasks.MaxWorkers > 0) { } }
public void GetPollingJobImplementationTypeNotDescendant2() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("Empty"); if (configuration.PollingJobs[typeof(ICloneable)] == null) { } }
public void GetPollingJobNullImplementationType() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("Empty"); if (configuration.PollingJobs[null] == null) { } }
public void GetTaskJobNullTaskType() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("Empty"); if (configuration.Tasks[null] == null) { } }
public ConfigurationWindow(ITaskProcessorConfiguration configuration) { this.InitializeComponent(); this.configuration = configuration; this.DataContext = this; }
/// <summary> /// Serializes a task processor configuration to a dictionary to be stored in Redis. /// </summary> /// <param name="configuration">The configuration to serialize.</param> /// <param name="result">The dictionary where to add the serialized key/value pairs.</param> /// <param name="prefix">The prefix to add before each dictionary key.</param> internal static void Serialize(ITaskProcessorConfiguration configuration, IDictionary <string, string> result, string prefix) { if (!string.IsNullOrEmpty(prefix) && !prefix.EndsWith(".", StringComparison.Ordinal)) { prefix = prefix + "."; } RedisTaskProcessorConfigurationRepository.Serialize(configuration.Tasks, result, prefix + "Tasks"); RedisTaskProcessorConfigurationRepository.Serialize(configuration.PollingQueues, result, prefix + "PollingQueues"); RedisTaskProcessorConfigurationRepository.Serialize(configuration.PollingJobs, result, prefix + "PollingJobs"); }
public void NoMaxTasks() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("NoMaxTasks"); Assert.IsNull(configuration.Tasks.MaxWorkers); ITaskJobConfiguration jobConfig = configuration.Tasks[typeof(IFakeTask)]; Assert.IsNotNull(jobConfig); Assert.AreEqual(typeof(IFakeTask), jobConfig.TaskType); Assert.IsNull(jobConfig.MaxWorkers); }
/// <summary> /// Merges a <see cref="ITaskProcessorConfiguration"/> instance with another. /// </summary> /// <param name="source">The <see cref="ITaskProcessorConfiguration"/> instance to update.</param> /// <param name="other">The <see cref="ITaskProcessorConfiguration"/> to merge with.</param> /// <exception cref="ArgumentNullException">Parameter <paramref name="source"/> or <paramref name="other"/> is null.</exception> public static void MergeWith(this ITaskProcessorConfiguration source, ITaskProcessorConfiguration other) { if (source == null) { throw new ArgumentNullException("source"); } if (other == null) { throw new ArgumentNullException("other"); } source.Tasks.MergeWith(other.Tasks); source.PollingJobs.MergeWith(other.PollingJobs); source.PollingQueues.MergeWith(other.PollingQueues); }
public void UndefinedTask() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("Empty"); Assert.IsNull(configuration.Tasks[typeof(IFakeTask)]); }
/// <summary> /// Deserializes a task processor configuration from a Redis dictionary. /// </summary> /// <param name="values">The dictionary stored in Redis.</param> /// <param name="result">The instance where to deserialize the data.</param> /// <param name="prefix">The prefix that has been added before each dictionary key during serialization.</param> internal static void Deserialize(IReadOnlyDictionary <string, string> values, ITaskProcessorConfiguration result, string prefix) { if (!string.IsNullOrEmpty(prefix) && !prefix.EndsWith(".", StringComparison.Ordinal)) { prefix = prefix + "."; } RedisTaskProcessorConfigurationRepository.Deserialize(values, result.Tasks, prefix + "Tasks"); RedisTaskProcessorConfigurationRepository.Deserialize(values, result.PollingQueues, prefix + "PollingQueues"); RedisTaskProcessorConfigurationRepository.Deserialize(values, result.PollingJobs, prefix + "PollingJobs"); }