Skip to content

Commit

Permalink
Update for email only
Browse files Browse the repository at this point in the history
  • Loading branch information
NatLeong committed Mar 20, 2024
1 parent 9341aea commit f1a2618
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 25 deletions.
22 changes: 19 additions & 3 deletions src/main/java/seedu/address/storage/JsonAdaptedPerson.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package seedu.address.storage;

import java.util.Optional;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

import seedu.address.commons.exceptions.IllegalValueException;
import seedu.address.model.person.Address;
import seedu.address.model.person.DateOfBirth;
import seedu.address.model.person.Email;
import seedu.address.model.person.Name;
import seedu.address.model.person.Nric;
import seedu.address.model.person.Person;
Expand All @@ -26,6 +29,7 @@ class JsonAdaptedPerson {
private final String status;
private final String address;
private final String dateOfBirth;
private final Optional<String> email;

/**
* Constructs a {@code JsonAdaptedPerson} with the given person details.
Expand All @@ -34,14 +38,15 @@ class JsonAdaptedPerson {
public JsonAdaptedPerson(@JsonProperty("nric") String nric, @JsonProperty("name") String name,
@JsonProperty("phone") String phone, @JsonProperty("dateOfBirth") String dob,
@JsonProperty("sex") String sex, @JsonProperty("address") String address,
@JsonProperty("status") String status) {
@JsonProperty("status") String status, @JsonProperty("email") String email) {
this.nric = nric;
this.name = name;
this.phone = phone;
this.address = address;
this.dateOfBirth = dob;
this.sex = sex;
this.status = status;
this.email = Optional.ofNullable(email);
}

/**
Expand All @@ -55,7 +60,7 @@ public JsonAdaptedPerson(Person source) {
this.dateOfBirth = source.getDateOfBirth().toString();
this.sex = source.getEmail().toString();
this.status = source.getStatus().toString();

this.email = Optional.ofNullable(source.getEmail().toString());
}

/**
Expand All @@ -64,6 +69,9 @@ public JsonAdaptedPerson(Person source) {
* @throws IllegalValueException if there were any data constraints violated in the adapted person.
*/
public Person toModelType() throws IllegalValueException {

Person person;

// NRIC Check
if (nric == null) {
throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Nric.class.getSimpleName()));
Expand Down Expand Up @@ -121,7 +129,15 @@ public Person toModelType() throws IllegalValueException {
throw new IllegalValueException(Sex.MESSAGE_CONSTRAINTS);
}
final Status modelStatus = new Status(status);
return new Person(modelNric, modelName, modelPhone, modelAddress, modelDateOfBirth, modelSex, modelStatus);

person = new Person(modelNric, modelName, modelPhone, modelAddress, modelDateOfBirth, modelSex, modelStatus);

// Email check
if (email.isPresent()) {
final Email modelEmail = new Email(email.get());
person.setEmail(modelEmail);
}
return person;
}

}
38 changes: 16 additions & 22 deletions src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,7 @@
import org.junit.jupiter.api.Test;

import seedu.address.commons.exceptions.IllegalValueException;
import seedu.address.model.person.Address;
import seedu.address.model.person.DateOfBirth;
import seedu.address.model.person.Name;
import seedu.address.model.person.Nric;
import seedu.address.model.person.Phone;
import seedu.address.model.person.Sex;
import seedu.address.model.person.Status;
import seedu.address.model.person.*;


public class JsonAdaptedPersonTest {
Expand All @@ -33,6 +27,7 @@ public class JsonAdaptedPersonTest {
private static final String VALID_DOB = "2022-01-01";
private static final String VALID_SEX = BENSON.getSex().toString();
private static final String VALID_STATUS = BENSON.getStatus().toString();
private static final String VALID_EMAIL = "benson123@gmail.com";
@Test
public void toModelType_validPersonDetails_returnsPerson() throws Exception {
JsonAdaptedPerson person = new JsonAdaptedPerson(BENSON);
Expand All @@ -43,7 +38,7 @@ 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_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = Nric.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -52,15 +47,15 @@ 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_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
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_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = Name.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -69,7 +64,7 @@ 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_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -78,7 +73,7 @@ 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_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = Phone.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -87,7 +82,7 @@ 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_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -96,7 +91,7 @@ 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);
INVALID_ADDRESS, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = Address.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -105,15 +100,15 @@ 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);
null, VALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
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_ADDRESS, INVALID_DOB, VALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = DateOfBirth.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -122,15 +117,15 @@ 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_ADDRESS, null, VALID_SEX, VALID_STATUS, VALID_EMAIL);
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_ADDRESS, VALID_DOB, INVALID_SEX, VALID_STATUS, VALID_EMAIL);
String expectedMessage = Sex.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -139,15 +134,15 @@ 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_ADDRESS, VALID_DOB, null, VALID_STATUS, VALID_EMAIL);
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_ADDRESS, VALID_DOB, VALID_SEX, INVALID_STATUS, VALID_EMAIL);
String expectedMessage = Status.MESSAGE_CONSTRAINTS;
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}
Expand All @@ -156,10 +151,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_ADDRESS, VALID_DOB, VALID_SEX, null, VALID_EMAIL);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName());
assertThrows(IllegalValueException.class, expectedMessage, person::toModelType);
}


}
1 change: 1 addition & 0 deletions src/test/java/seedu/address/testutil/PersonBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public PersonBuilder() {
*/
public PersonBuilder(Person personToCopy) {
//TODO: Add the missing fields
nric = personToCopy.getNric();
name = personToCopy.getName();
phone = personToCopy.getPhone();
address = personToCopy.getAddress();
Expand Down

0 comments on commit f1a2618

Please sign in to comment.