Skip to content

Commit

Permalink
Merge branch 'AY2425S1-CS2103T-F12-2:master' into mvp-add-student
Browse files Browse the repository at this point in the history
  • Loading branch information
nihalramesh authored Oct 17, 2024
2 parents ef101ef + c27d128 commit 25c2508
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ public boolean equals(Object other) {
if (!(other instanceof SortCommand)) {
return false;
}
SortCommand otherCommand = (SortCommand) other;
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ public SortCommand parse(String args) throws ParseException {

switch (trimmedArgs) {
case "name" -> comparator = Comparator.comparing(Person::getNameString);
case "subject" -> comparator = Comparator.comparing(Person::getSubjectString);
case "classes" -> comparator = Comparator.comparing(Person::getClassesString);
default -> throw new ParseException(SortCommand.MESSAGE_USAGE);
}

Expand Down
7 changes: 7 additions & 0 deletions src/main/java/seedu/address/model/person/Person.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,11 @@ public String toString() {
.toString();
}

public String getSubjectString() {
return "";
}

public String getClassesString() {
return "";
}
}
10 changes: 10 additions & 0 deletions src/main/java/seedu/address/model/person/Student.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,16 @@ public Set<String> getClasses() {
return classes;
}

@Override
public String getSubjectString() {
return subject.toString();
}

@Override
public String getClassesString() {
return String.join(", ", classes);
}

@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/seedu/address/model/person/Teacher.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,16 @@ public Set<String> getClasses() {
return this.classes;
}

@Override
public String getSubjectString() {
return subject.toString();
}

@Override
public String getClassesString() {
return String.join(", ", classes);
}

/**
* Returns true if both teachers have the same name.
* This defines a weaker notion of equality between two teachers.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,25 @@ public class SortCommandParserTest {
private final SortCommandParser parser = new SortCommandParser();

@Test
public void parse_validArgs_returnsSortCommand() throws Exception {
public void parse_validArgsName_returnsSortCommand() throws Exception {
SortCommand command = parser.parse("name");
Comparator<Person> expectedComparator = Comparator.comparing(Person::getNameString);
Comparator<? extends Person> expectedComparator = Comparator.comparing(Person::getNameString);
SortCommand expectedCommand = new SortCommand(expectedComparator);
assertEquals(expectedCommand, command);
}

@Test
public void parse_validArgsSubject_returnsSortCommand() throws Exception {
SortCommand command = parser.parse("subject");
Comparator<? extends Person> expectedComparator = Comparator.comparing(Person::getSubjectString);
SortCommand expectedCommand = new SortCommand(expectedComparator);
assertEquals(expectedCommand, command);
}

@Test
public void parse_validArgsClasses_returnsSortCommand() throws Exception {
SortCommand command = parser.parse("classes");
Comparator<? extends Person> expectedComparator = Comparator.comparing(Person::getClassesString);
SortCommand expectedCommand = new SortCommand(expectedComparator);
assertEquals(expectedCommand, command);
}
Expand Down
12 changes: 12 additions & 0 deletions src/test/java/seedu/address/model/person/PersonTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,16 @@ public void toStringMethod() {
+ ", email=" + ALICE.getEmail() + ", address=" + ALICE.getAddress() + ", tags=" + ALICE.getTags() + "}";
assertEquals(expected, ALICE.toString());
}

@Test
public void getSubjectString_defaultValue_returnsEmptyString() {
// Test the default implementation of getSubjectString in Person
assertEquals("", ALICE.getSubjectString());
}

@Test
public void getClassesString_defaultValue_returnsEmptyString() {
// Test the default implementation of getClassesString in Person
assertEquals("", ALICE.getClassesString());
}
}
12 changes: 11 additions & 1 deletion src/test/java/seedu/address/model/person/StudentTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import org.junit.jupiter.api.Test;

import seedu.address.testutil.StudentBuilder;

public class StudentTest {

@Test
Expand Down Expand Up @@ -59,4 +58,15 @@ public void testHashCode() {
Student student2 = new StudentBuilder().withName("John Doe").build();
assertEquals(student1.hashCode(), student2.hashCode());
}
@Test
public void getSubjectString_validSubject_returnsSubjectString() {
Student student = new StudentBuilder().withSubject("Mathematics").build();
assertEquals("Mathematics", student.getSubjectString());
}

@Test
public void getClassesString_validClasses_returnsClassesString() {
Student student = new StudentBuilder().withClasses("Class A", "Class B").build();
assertEquals("Class A, Class B", student.getClassesString());
}
}
18 changes: 18 additions & 0 deletions src/test/java/seedu/address/model/person/TeacherTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,4 +138,22 @@ public void hashCodeTest() {
assertFalse(teacher1.hashCode() == teacher3.hashCode());
}

@Test
public void getSubjectString_validSubject_returnsSubjectString() {
Teacher teacher = new Teacher(new Name("John Doe"), new Gender("male"), new Phone("12345678"),
new Email("johndoe@hotmail.com"), new Address("123 Main St"),
SampleDataUtil.getTagSet("Friends"), new Subject("Math"),
SampleDataUtil.getClassSet("1A"));
assertEquals("Math", teacher.getSubjectString());
}

@Test
public void getClassesString_validClasses_returnsClassesString() {
Teacher teacher = new Teacher(new Name("John Doe"), new Gender("male"), new Phone("12345678"),
new Email("johndoe@hotmail.com"), new Address("123 Main St"),
SampleDataUtil.getTagSet("Friends"), new Subject("Math"),
SampleDataUtil.getClassSet("1A", "2B"));
assertEquals("1A, 2B", teacher.getClassesString());
}

}

0 comments on commit 25c2508

Please sign in to comment.