public virtual void ReportPerformance() { this.Receiver.SubscribeForChannels(MessageBusChannel.PerformanceReport); TaskProcessorPerformanceReport performance = new TaskProcessorPerformanceReport(Guid.NewGuid()) { CpuPercent = 23, RamPercent = 31 }; performance.TasksPerformance.Add(new TaskPerformanceReport(Guid.NewGuid()) { CpuPercent = 45, RamPercent = 46 }); performance.TasksPerformance.Add(new TaskPerformanceReport(Guid.NewGuid()) { CpuPercent = 76, RamPercent = 84 }); TaskProcessorPerformanceEventArgs args = Helpers.WaitForEvent <TaskProcessorPerformanceEventArgs>( this.Timeout, handler => this.Receiver.PerformanceReportReceived += handler, () => this.Sender.NotifyPerformanceReport(performance)); UnitTestHelpers.AssertEqualByPublicScalarProperties(performance, args.PerformanceInfo); Assert.IsTrue(performance.TasksPerformance.IsEquivalentTo( args.PerformanceInfo.TasksPerformance, (a, b) => UnitTestHelpers.AreEqualByPublicScalarProperties(a, b))); }
public void SerializeAndDeserializeWithType() { FakeEntity entity1 = new FakeEntity() { StringValue = "A", IntValue = 19 }; byte[] content = this.Serializer.Serialize(entity1); FakeEntity entity2 = (FakeEntity)this.Serializer.Deserialize(content, entity1.GetType()); UnitTestHelpers.AssertEqualByPublicScalarProperties(entity1, entity2); }
private void SerializeAndDeserialize(Func <byte[], object> deserializeCallback) { FakeEntity entity1 = new FakeEntity() { StringValue = "A", IntValue = 19 }; byte[] content = this.Serializer.Serialize(entity1); FakeEntity entity2 = (FakeEntity)this.Serializer.Deserialize(content); UnitTestHelpers.AssertEqualByPublicScalarProperties(entity1, entity2); }
public void AddTask() { Guid taskId = Guid.NewGuid(); FakeTask task1 = new FakeTask() { StringValue = "Hello World", NumberValue = DateTime.UtcNow.Millisecond }; this.Repository.Add(taskId, task1); FakeTask task2 = (FakeTask)this.Repository.GetById(taskId); UnitTestHelpers.AssertEqualByPublicScalarProperties(task1, task2); }
public void AddPollingQueueTask() { ITaskRuntimeInfo taskInfo1 = this.Repository.Add("Test"); ITaskRuntimeInfo taskInfo2 = this.Repository.GetById(taskInfo1.TaskId); UnitTestHelpers.AssertEqualByPublicScalarProperties(taskInfo1, taskInfo2); Assert.IsTrue(this.Repository.CheckIsPendingOrActive(taskInfo1.TaskId)); Assert.IsFalse(this.Repository.GetPending(false).Any(t => t.TaskId == taskInfo1.TaskId)); Assert.IsTrue(this.Repository.GetPending(true).Any(t => t.TaskId == taskInfo1.TaskId)); Assert.IsFalse(this.Repository.GetPendingAndActive()[TaskStatus.Pending].Any(t => t.TaskId == taskInfo1.TaskId)); Assert.IsFalse(this.Repository.GetPendingAndActive()[TaskStatus.InProgress].Any(t => t.TaskId == taskInfo1.TaskId)); Assert.IsFalse(this.Repository.GetActive().Any(t => t.TaskId == taskInfo1.TaskId)); Assert.IsFalse(this.Repository.GetFailed().Any(t => t.TaskId == taskInfo1.TaskId)); Assert.IsFalse(this.Repository.GetArchive().Any(t => t.TaskId == taskInfo1.TaskId)); Assert.IsTrue(this.Repository.ReservePollingQueueTasks("Test", 1).Any(t => t.TaskId == taskInfo1.TaskId)); }
private void SubmitTask(bool isPollingQueueTask, bool hasSummary, TaskPriority expectedPriority, Func <ITask, ITaskSummary, Guid> submitCallback) { this.DateTimeProvider.UtcNow = DateTime.UtcNow.AddMinutes(-1); FakeTask task1 = new FakeTask() { StringValue = "Hello Submit Task", NumberValue = 1234567 }; StringTaskSummary summary1; if (hasSummary) { summary1 = new StringTaskSummary("Hello World"); } this.Configuration.PredefineResult(isPollingQueueTask ? "Test" : null, c => c.GetPollingQueueKey(task1.GetType())); Guid taskId = submitCallback(task1, summary1); Assert.IsNotNull(this.TaskProcessorFacade.GetTask(taskId)); ITaskRuntimeInfo taskInfo = this.TaskProcessorFacade.GetTaskRuntimeInfo(taskId); Assert.IsNotNull(taskInfo); Assert.AreEqual(taskId, taskInfo.TaskId); Assert.AreEqual(expectedPriority, taskInfo.Priority); Assert.AreEqual(TaskStatus.Pending, taskInfo.Status); Assert.AreEqual(this.DateTimeProvider.UtcNow, taskInfo.SubmittedUtc); FakeTask task2 = (FakeTask)this.Repository.Tasks.GetById(taskId); UnitTestHelpers.AssertEqualByPublicScalarProperties(task1, task2); if (hasSummary) { StringTaskSummary summary2 = (StringTaskSummary)this.Repository.TaskSummary.GetById(taskId); Assert.AreEqual(summary1.Summary, summary2.Summary); } TaskSubmittedMasterCommand message = this.TaskProcessorFacade.MessageBus.MasterCommands .OfType <TaskSubmittedMasterCommand>() .SingleOrDefault(m => m.TaskId == taskId); if (isPollingQueueTask) { Assert.IsNull(message); Assert.IsTrue(this.Repository.TaskRuntimeInfo.GetPending(true).Any(p => p.TaskId == taskId)); Assert.IsTrue(this.Repository.TaskRuntimeInfo.ReservePollingQueueTasks("Test", int.MaxValue).Any(p => p.TaskId == taskId)); } else { Assert.IsNotNull(message); Assert.AreNotEqual(Guid.Empty, message.MessageUniqueId); Assert.AreEqual(taskId, message.TaskId); Assert.IsTrue(this.Repository.TaskRuntimeInfo.GetPending(false).Any(p => p.TaskId == taskId)); } }