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 ActionResult CreateSubject([FromBody] SubjectForCreationDto subject) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Subject subjectEntity = new Subject { FirstName = subject.FirstName, LastName = subject.LastName, DateOfBirth = subject.DateOfBirth, TitleId = subject.TitleId }; _subjectOrderRepository.AddSubject(subjectEntity); _subjectOrderRepository.Save(); var subjectToReturn = new SubjectDto { subjectId = subjectEntity.SubjectId, firstName = subjectEntity.FirstName, lastName = subjectEntity.LastName, dateOfBirth = subjectEntity.DateOfBirth, titleId = subjectEntity.TitleId }; return(CreatedAtRoute("GetSubject", new { subjectToReturn.subjectId }, subjectToReturn));; }
public async Task <IActionResult> AddSubject(SubjectForCreationDto subjectForCreationDto) { if (subjectForCreationDto == null) { return(NoContent()); } if (await _repo.IsExistSubjectName(subjectForCreationDto.Name)) { return(BadRequest("Subject Name already Exist")); } var subjectToCreate = _mapper.Map <Subjects>(subjectForCreationDto); _repo.Add <Subjects>(subjectToCreate); if (await _repo.SaveAll()) { return(Ok()); } return(BadRequest("Failed to add subject")); }
public async Task <IActionResult> CreateSubjectAsync([FromBody] SubjectForCreationDto model) { await _mediator.Send(new CreateSubjectCommand( string.IsNullOrEmpty(model.Id) ? Guid.NewGuid() : new Guid(model.Id), model.Name, model.Amount)); return(new CreatedResult(string.Empty, null)); }
public void AddSubject_ValidObject_ReturnsCreatedSubject() { // arrange FakeSubjectOrderRepository fake = new FakeSubjectOrderRepository(); SubjectsController sc = new SubjectsController(fake); SubjectForCreationDto subject = new SubjectForCreationDto { FirstName = "Zita", LastName = "Garsden Kabok", DateOfBirth = new DateTime(1980, 05, 03), TitleId = 2 }; // act CreatedAtRouteResult result = sc.CreateSubject(subject) as CreatedAtRouteResult; // assert Assert.IsInstanceOf <SubjectDto>(result.Value); Assert.AreEqual("GetSubject", result.RouteName); SubjectDto subjectReturned = result.Value as SubjectDto; Assert.AreEqual(6, subjectReturned.subjectId); Assert.AreEqual("Zita", subjectReturned.firstName); Assert.AreEqual("Garsden Kabok", subjectReturned.lastName); Assert.AreEqual("03/05/1980", subject.DateOfBirth.ToString("d")); Assert.AreEqual(2, subjectReturned.titleId); }
public async Task <IActionResult> CreateSubject([FromBody] SubjectForCreationDto model) { // maps the resource to a domain model var subject = _mapper.Map <Subject>(model); try { // calls subject service to create a new subject var subjectCreated = await _subjectService.Create(subject, model.UserId); // returns 200ok and the subject created return(Ok(_mapper.Map <SubjectDto>(subjectCreated))); } catch (Exception ex) { // return error message if there was an exception return(BadRequest(new { message = ex.Message })); } }
public void AddSubject_ValidObject_ReturnsCreateAtRouteResult() { // arrange FakeSubjectOrderRepository fake = new FakeSubjectOrderRepository(); SubjectsController sc = new SubjectsController(fake); SubjectForCreationDto subject = new SubjectForCreationDto { FirstName = "Zita", LastName = "Garsden Kabok", DateOfBirth = new DateTime(1980, 05, 03), TitleId = 2 }; // act var result = sc.CreateSubject(subject); // assert Assert.IsInstanceOf <CreatedAtRouteResult>(result); }
public void AddSubject_InValidObject_ReturnsBadRequestResult() { // arrange FakeSubjectOrderRepository fake = new FakeSubjectOrderRepository(); SubjectsController sc = new SubjectsController(fake); SubjectForCreationDto subject = new SubjectForCreationDto { LastName = "Garsden Kabok", DateOfBirth = new DateTime(1980, 05, 03), TitleId = 2 }; sc.ModelState.AddModelError("firstName", "Required"); // act var result = sc.CreateSubject(subject); // assert Assert.IsInstanceOf <BadRequestObjectResult>(result); }