public async Task TestWatchingEvents() { var client = new ArmadaClient("http://localhost:8080", new HttpClient()); var queue = "test"; var jobSet = $"set-{Guid.NewGuid()}"; // produce some events await client.CreateQueueAsync(queue, new ApiQueue { PriorityFactor = 200 }); var request = CreateJobRequest(jobSet); var response = await client.SubmitJobsAsync(request); var cancelResponse = await client.CancelJobsAsync(new ApiJobCancelRequest { Queue = "test", JobSetId = jobSet }); using (var cts = new CancellationTokenSource()) { var eventCount = 0; Task.Run(() => client.WatchEvents(queue, jobSet, null, cts.Token, m => eventCount++, e => throw e)); await Task.Delay(TimeSpan.FromMinutes(2)); cts.Cancel(); Assert.That(eventCount, Is.EqualTo(4)); } }
public async Task TestProcessingUnknownEvents() { var mockHttp = new MockHttpMessageHandler(); mockHttp.When("http://*****:*****@"{""result"":{""Id"":""1593611590122-0"",""message"":{""Queued"":{""JobId"":""01ec5ae6f9wvya6cr6stzwty7v"",""JobSetId"":""set-bae48cc8-9f70-465f-ae5c-c92713b5f24f"",""Queue"":""test"",""Created"":""2020-07-01T13:53:10.122263955Z""}}}} {""result"":{""Id"":""1593611590122-0"",""message"":{""UnknownEvent"":""test""}}} {""error"": ""test error""} {} {""a"":""b""}"); IArmadaClient client = new ArmadaClient("http://localhost:8080", new HttpClient(mockHttp)); var events = (await client.GetJobEventsStream("queue", "jobSet", watch: false)).ToList(); Assert.That(events.Count(), Is.EqualTo(2)); Assert.That(events[0].Result.Message.Event, Is.Not.Null); Assert.That(events[1].Error, Is.EqualTo("test error")); }
public async Task TestSimpleJobSubmitFlow() { var jobSet = $"set-{Guid.NewGuid()}"; IArmadaClient client = new ArmadaClient("http://localhost:8080", new HttpClient()); await client.CreateQueueAsync("test", new ApiQueue { PriorityFactor = 200 }); var request = CreateJobRequest(jobSet); var response = await client.SubmitJobsAsync(request); var cancelResponse = await client.CancelJobsAsync(new ApiJobCancelRequest { Queue = "test", JobSetId = jobSet }); var events = await client.GetJobEventsStream(jobSet, watch : false); var allEvents = events.ToList(); Assert.That(allEvents, Is.Not.Empty); Assert.That(allEvents[0].Result.Message.Submitted, Is.Not.Null); }