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);
            }
Exemple #2
0
        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"));
        }
Exemple #4
0
        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);
        }
Exemple #6
0
        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);
        }