public void Should_return_JSON_string_when_person_is_created_for_put() { dynamic actual = null; try { // Given IPersonForResponse model = CreateModelForPutTest(); dynamic expected = CreateExpectedResponseForPutTest(); Browser browser = CreateBrowser(); // When BrowserResponse result = browser.Put("/person/", with => { with.JsonBody(model); }); actual = XUnitPersonsHelper.ToDynamic(result.Body.AsString()); // Then XUnitPersonsHelper.AssertPersonIgnoreId(expected, actual); } finally { if (actual != null) { int id = Convert.ToInt32(actual ["Id"].Value); DeleteDoctorById(id); } } }
public void Should_return_JSON_string_when_person_is_updated() { IPersonForResponse model = null; try { // Given Browser browser = CreateBrowser(); dynamic person = CreateDoctorToBeDeleted(browser); model = CreateModelForUpdate(person); dynamic expected = CreatedExpectedDoctorForUpdate(model.Id); // When BrowserResponse result = browser.Put("/person/", with => { with.JsonBody(model); }); dynamic actual = XUnitPersonsHelper.ToDynamic(result.Body.AsString()); // Then XUnitPersonsHelper.AssertPerson(expected, actual); } finally { if (model != null) { DeleteDoctorById(model.Id); } } }
public IPersonForResponse Save(IPersonForResponse person) { IPerson toBeUpdated = ToPerson(person); Repository.Save(toBeUpdated); return(new PersonForResponse(toBeUpdated)); }
public Response DeleteById(int id) { IPersonForResponse doctor = m_InformationFinder.Delete(id); if (doctor == null) { return(HttpStatusCode.NotFound); } return(AsJson(doctor)); }
public void Delete_ReturnsNull_ForCanNotAdd() { // Arrange var repository = Substitute.For <IPersonsRepository>(); repository.Delete(Arg.Any <int>()).Returns(( IPerson )null); InformationFinder sut = CreateSut(repository); // Act IPersonForResponse actual = sut.Delete(DoesNotMatter); // Assert Assert.Null(actual); }
public void FindById_ReturnsNull_ForNotExistingId() { // Arrange var repository = Substitute.For <IPersonsRepository>(); repository.FindById(DoesNotMatter).Returns(( IPerson )null); InformationFinder sut = CreateSut(repository); // Act IPersonForResponse actual = sut.FindById(DoesNotMatter); // Assert Assert.Null(actual); }
public void FindById_ReturnsResponse_ForKnownId([NotNull] IPersonForResponse doctor) { // Arrange var finder = Substitute.For <IInformationFinder>(); finder.FindById(doctor.Id).Returns(doctor); RequestHandler sut = CreateSut(finder); // Act Response actual = sut.FindById(doctor.Id); // Assert Assert.Equal(HttpStatusCode.OK, actual.StatusCode); }
public void Delete_ReturnsNewPerson_WhenCalled([NotNull] IPerson doctor) { // Arrange var repository = Substitute.For <IPersonsRepository>(); repository.Delete(Arg.Any <int>()).Returns(doctor); InformationFinder sut = CreateSut(repository); // Act IPersonForResponse actual = sut.Delete(DoesNotMatter); // Assert Assert.Equal(doctor.Id, actual.Id); }
public void FindById_ReturnsPerson_ForExistingId([NotNull] IPerson doctor) { // Arrange var repository = Substitute.For <IPersonsRepository>(); repository.FindById(doctor.Id).Returns(doctor); InformationFinder sut = CreateSut(repository); // Act IPersonForResponse actual = sut.FindById(doctor.Id); // Assert Assert.Equal(doctor.Id, actual.Id); }
public void Save_CallsSave_WhenCalled([NotNull] IPersonForResponse toBeUpdated, [NotNull] IPerson doctor) { // Arrange var repository = Substitute.For <IPersonsRepository>(); repository.Save(Arg.Any <IPerson>()); InformationFinder sut = CreateSut(repository); // Act sut.Save(toBeUpdated); // Assert repository.Received().Save(Arg.Is <IPerson>(x => x.Id == toBeUpdated.Id)); }
public void Save_ReturnsStatusOK_WhenCalled([NotNull] IPersonForResponse toBeCreated, [NotNull] IPersonForResponse created) { // Arrange var finder = Substitute.For <IInformationFinder>(); finder.Save(toBeCreated).Returns(created); RequestHandler sut = CreateSut(finder); // Act Response actual = sut.Save(toBeCreated); // Assert Assert.Equal(HttpStatusCode.OK, actual.StatusCode); }
public void Save_ReturnsUpdatedPerson_ForExisting([NotNull] IPersonForResponse toBeUpdated, [NotNull] IPerson doctor) { // Arrange var repository = Substitute.For <IPersonsRepository>(); repository.Save(Arg.Any <IPerson>()); InformationFinder sut = CreateSut(repository); // Act IPersonForResponse actual = sut.Save(toBeUpdated); // Assert Assert.Equal(toBeUpdated.Id, actual.Id); }
public void Should_update_database_when_person_is_updated() { IPersonForResponse model = null; try { // Given Browser browser = CreateBrowser(); dynamic person = CreateDoctorToBeDeleted(browser); model = CreateModelForUpdate(person); // When BrowserResponse result = browser.Put("/person/", with => { with.JsonBody(model); }); // Then Assert.Equal(HttpStatusCode.OK, result.StatusCode); // *** Post-conditions *** // Given dynamic expected = CreatedExpectedDoctorForUpdate(model.Id); // When result = browser.Get("/person/" + model.Id, with => { with.HttpRequest(); }); dynamic actual = XUnitPersonsHelper.ToDynamic(result.Body.AsString()); // Then XUnitPersonsHelper.AssertPerson(expected, actual); } finally { if (model != null) { DeleteDoctorById(model.Id); } } }
private IPerson ToPerson(IPersonForResponse person) { string firstName = TextOrDefault(person.FirstName, "FirstName"); DateTime dateOfBirth = DateOrDefault(person.DateOfBirth, DateTime.Now); IPerson instance = new Person { Id = person.Id, FirstName = firstName, Surname = person.Surname, DateOfBirth = dateOfBirth, Sex = person.Sex, Email = person.Email }; return(instance); }
public Response Save(IPersonForResponse doctor) { IPersonForResponse saved = m_InformationFinder.Save(doctor); return(AsJson(saved)); }