Skip to content

Commit

Permalink
Update for allergies only
Browse files Browse the repository at this point in the history
  • Loading branch information
NatLeong committed Mar 20, 2024
1 parent 81cee06 commit daf346b
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 16 deletions.
11 changes: 10 additions & 1 deletion src/main/java/seedu/address/storage/JsonAdaptedPerson.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import seedu.address.commons.exceptions.IllegalValueException;
import seedu.address.model.person.Address;
import seedu.address.model.person.Allergies;
import seedu.address.model.person.Country;
import seedu.address.model.person.DateOfBirth;
import seedu.address.model.person.Email;
Expand All @@ -32,6 +33,7 @@ class JsonAdaptedPerson {
private final String dateOfBirth;
private final Optional<String> email;
private final Optional<String> country;
private final Optional<String> allergies;

/**
* Constructs a {@code JsonAdaptedPerson} with the given person details.
Expand All @@ -41,7 +43,7 @@ public JsonAdaptedPerson(@JsonProperty("nric") String nric, @JsonProperty("name"
@JsonProperty("phone") String phone, @JsonProperty("address") String address,
@JsonProperty("dateOfBirth") String dob, @JsonProperty("sex") String sex,
@JsonProperty("status") String status, @JsonProperty("email") String email,
@JsonProperty("country") String country) {
@JsonProperty("country") String country, @JsonProperty("allergies") String allergies) {
this.nric = nric;
this.name = name;
this.phone = phone;
Expand All @@ -51,6 +53,7 @@ public JsonAdaptedPerson(@JsonProperty("nric") String nric, @JsonProperty("name"
this.status = status;
this.email = Optional.ofNullable(email);
this.country = Optional.ofNullable(country);
this.allergies = Optional.ofNullable(allergies);
}

/**
Expand All @@ -66,6 +69,7 @@ public JsonAdaptedPerson(Person source) {
this.status = source.getStatus().toString();
this.email = Optional.ofNullable(source.getEmail().toString());
this.country = Optional.ofNullable(source.getCountry().toString());
this.allergies = Optional.ofNullable(source.getAllergies().toString());
}

/**
Expand Down Expand Up @@ -147,6 +151,11 @@ public Person toModelType() throws IllegalValueException {
final Country modelCountry = new Country(country.get());
person.setCountry(modelCountry);
}
// Allergies check
if (allergies.isPresent()) {
final Allergies modelAllergies = new Allergies(allergies.get());
person.setAllergies(modelAllergies);
}
return person;
}

Expand Down
44 changes: 29 additions & 15 deletions src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class JsonAdaptedPersonTest {
private static final String VALID_STATUS = BENSON.getStatus().toString();
private static final String VALID_EMAIL = "[email protected]";
private static final String VALID_COUNTRY = "Singapore";
private static final String VALID_ALLERGIES = "Peanuts";
@Test
public void toModelType_validPersonDetails_returnsPerson() throws Exception {
JsonAdaptedPerson person = new JsonAdaptedPerson(BENSON);
Expand All @@ -44,7 +45,8 @@ public void toModelType_validPersonDetails_returnsPerson() throws Exception {
public void toModelType_invalidNric_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(INVALID_NRIC, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = Nric.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -53,15 +55,17 @@ public void toModelType_invalidNric_throwsIllegalValueException() {
public void toModelType_nullNric_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(null, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
@Test
public void toModelType_invalidName_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, INVALID_NAME, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = Name.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -70,7 +74,8 @@ public void toModelType_invalidName_throwsIllegalValueException() {
public void toModelType_nullName_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, null, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -79,7 +84,8 @@ public void toModelType_nullName_throwsIllegalValueException() {
public void toModelType_invalidPhone_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, INVALID_PHONE,
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = Phone.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -88,7 +94,8 @@ public void toModelType_invalidPhone_throwsIllegalValueException() {
public void toModelType_nullPhone_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, null,
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -97,7 +104,8 @@ public void toModelType_nullPhone_throwsIllegalValueException() {
public void toModelType_invalidAddress_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
INVALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
INVALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = Address.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -106,15 +114,17 @@ public void toModelType_invalidAddress_throwsIllegalValueException() {
public void toModelType_nullAddress_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
null, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
null, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
@Test
public void toModelType_invalidDob_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, INVALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, INVALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = DateOfBirth.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -123,15 +133,17 @@ public void toModelType_invalidDob_throwsIllegalValueException() {
public void toModelType_nullDob_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, null, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, null, VALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
@Test
public void toModelType_invalidSex_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, INVALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, INVALID_SEX, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = Sex.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -140,15 +152,17 @@ public void toModelType_invalidSex_throwsIllegalValueException() {
public void toModelType_nullSex_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, null, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, null, VALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
@Test
public void toModelType_invalidStatus_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, VALID_SEX, INVALID_STATUS, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, INVALID_STATUS, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = Status.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -157,9 +171,9 @@ public void toModelType_invalidStatus_throwsIllegalValueException() {
public void toModelType_nullStatus_throwsIllegalValueException() {
JsonAdaptedPerson person =
new JsonAdaptedPerson(VALID_NRIC, VALID_NAME, VALID_PHONE,
VALID_ADDRESS, VALID_DOB, VALID_SEX, null, VALID_EMAIL, VALID_COUNTRY);
VALID_ADDRESS, VALID_DOB, VALID_SEX, null, VALID_EMAIL, VALID_COUNTRY,
VALID_ALLERGIES);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}

}

0 comments on commit daf346b

Please sign in to comment.