public async Task Creating_And_Paying_Subject_Should_Work() { var threshold = 5000; var url = "/api/subjects"; var subjectDto = new SubjectForCreationDto() { Id = Guid.NewGuid().ToString(), Name = "sample", Amount = 5 }; var billDto = new BillForCreationDto() { Amount = 5 }; _client.PostAsync(url, new StringContent(JsonConvert.SerializeObject(subjectDto), Encoding.UTF8, "application/json")).Wait(); _client.PutAsync($"{url}/{subjectDto.Id}/bills", new StringContent(JsonConvert.SerializeObject(billDto), Encoding.UTF8, "application/json")).Wait(); Thread.Sleep(threshold); var result = await _client.GetAsync(url); var subjects = JsonConvert.DeserializeObject <IEnumerable <SubjectReadModel> >(await result.Content.ReadAsStringAsync()); var subject = subjects.FirstOrDefault(s => s.Id == new Guid(subjectDto.Id)); Assert.Equal("sample", subject.Name); Assert.Equal(5, subject.Amount); Assert.Equal(5, subject.Bills.First().Amount); }
public async Task <IActionResult> PayBillAsync(string id, [FromBody] BillForCreationDto model) { await _mediator.Send(new PayBillCommand(new Guid(id), model.Amount)); return(NoContent()); }