Skip to content

Commit 085ac71

Browse files
committed
feat:adds new package name for lesson16 homework by Yemi
1 parent 1d78d6b commit 085ac71

File tree

6 files changed

+311
-4
lines changed

6 files changed

+311
-4
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package com.codedifferently.lesson16.studentinfo;
2+
13
public enum Department {
24
Sales,
35
Finance,
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
package com.codedifferently.lesson16.studentinfo;
2+
3+
import java.time.LocalDate;
4+
import java.util.List;
5+
6+
public class Student {
7+
private long studentNumber;
8+
private String fullName;
9+
private Department department;
10+
private String emailAddress;
11+
private List<String> phoneNumbers;
12+
private LocalDate dateOfBirth;
13+
14+
public Student(
15+
long studentNumber,
16+
String fullName,
17+
Department department,
18+
String emailAddress,
19+
List<String> phoneNumbers,
20+
LocalDate dateOfBirth) {
21+
this.studentNumber = studentNumber;
22+
this.fullName = fullName;
23+
this.department = department;
24+
this.emailAddress = emailAddress;
25+
this.phoneNumbers = phoneNumbers;
26+
this.dateOfBirth = dateOfBirth;
27+
}
28+
29+
public long getStudentNumber() {
30+
return studentNumber;
31+
}
32+
33+
public void setStudentNumber(long studentNumber) {
34+
this.studentNumber = studentNumber;
35+
}
36+
37+
public String getFullName() {
38+
return fullName;
39+
}
40+
41+
public void setFullName(String fullName) {
42+
this.fullName = fullName;
43+
}
44+
45+
public Department getDepartment() {
46+
return department;
47+
}
48+
49+
public void setDepartment(Department department) {
50+
this.department = department;
51+
}
52+
53+
public String getEmailAddress() {
54+
return emailAddress;
55+
}
56+
57+
public void setEmailAddress(String emailAddress) {
58+
this.emailAddress = emailAddress;
59+
}
60+
61+
public List<String> getPhoneNumbers() {
62+
return phoneNumbers;
63+
}
64+
65+
public void setPhoneNumbers(List<String> phoneNumbers) {
66+
this.phoneNumbers = phoneNumbers;
67+
}
68+
69+
public LocalDate getDateOfBirth() {
70+
return dateOfBirth;
71+
}
72+
73+
public void setDateOfBirth(LocalDate dateOfBirth) {
74+
this.dateOfBirth = dateOfBirth;
75+
}
76+
77+
@Override
78+
public String toString() {
79+
return "Student{"
80+
+ "studentNumber="
81+
+ studentNumber
82+
+ ", fullName='"
83+
+ fullName
84+
+ '\''
85+
+ ", department="
86+
+ department
87+
+ ", emailAddress='"
88+
+ emailAddress
89+
+ '\''
90+
+ ", phoneNumbers="
91+
+ phoneNumbers
92+
+ ", dateOfBirth="
93+
+ dateOfBirth
94+
+ '}';
95+
}
96+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.codedifferently.lesson16.studentinfo;
2+
3+
public class StudentNotFoundException extends RuntimeException {
4+
public StudentNotFoundException(String message) {
5+
super(message);
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.codedifferently.lesson16.studentinfo;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
public class StudentService {
7+
8+
private final Map<Long, Student> students;
9+
10+
public StudentService() {
11+
students = new HashMap<>();
12+
}
13+
14+
private void checkIfStudentExist(long studentNumber) {
15+
if (students.containsKey(studentNumber)) {
16+
return;
17+
}
18+
throw new StudentNotFoundException("Student with number " + studentNumber + " not found");
19+
}
20+
21+
public void deleteStudent(long studentNumber) {
22+
checkIfStudentExist(studentNumber);
23+
students.remove(studentNumber);
24+
}
25+
26+
public void addStudent(Student student) {
27+
students.put(student.getStudentNumber(), student);
28+
}
29+
30+
public int countNumberOfTechDeptStudents() {
31+
int count = 0;
32+
for (Student student : students.values()) {
33+
if (student.getDepartment().equals(Department.Technology)) {
34+
count++;
35+
}
36+
}
37+
return count;
38+
}
39+
40+
public Student findStudentByStudentNumber(long studentNumber) {
41+
return students.get(studentNumber);
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
package com.codedifferently.lesson16.studentinfo;
2+
3+
import java.time.LocalDate;
4+
import java.util.ArrayList;
5+
import java.util.HashMap;
6+
import java.util.List;
7+
import java.util.Map;
8+
9+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
10+
import static org.junit.jupiter.api.Assertions.assertEquals;
11+
import org.junit.jupiter.api.BeforeEach;
12+
import org.junit.jupiter.api.Test;
13+
14+
//import com.codedifferently.lesson16.studentinfo.Student;
15+
16+
public class StudentServiceTest {
17+
18+
StudentService classUnderTest;
19+
Map<Long, Student> students;
20+
21+
@BeforeEach
22+
public void setUp() {
23+
classUnderTest = new StudentService();
24+
25+
students = new HashMap<>();
26+
27+
List<String> phoneNumbers1 = new ArrayList<>();
28+
phoneNumbers1.add("301-999-3222");
29+
phoneNumbers1.add("301-211-3222");
30+
phoneNumbers1.add("301-212-3777");
31+
32+
Student student1 =
33+
new Student(
34+
112453698l,
35+
"Jane Doe",
36+
Department.Finance,
37+
38+
phoneNumbers1,
39+
LocalDate.of(2021, 11, 20));
40+
41+
List<String> phoneNumbers2 = new ArrayList<>();
42+
phoneNumbers2.add("301-777-3222");
43+
phoneNumbers2.add("301-777-3222");
44+
phoneNumbers2.add("301-777-3777");
45+
46+
Student student2 =
47+
new Student(
48+
712453698l,
49+
"Johnie Walker",
50+
Department.Technology,
51+
52+
phoneNumbers2,
53+
LocalDate.of(2021, 10, 26));
54+
55+
List<String> phoneNumbers3 = new ArrayList<>();
56+
phoneNumbers2.add("303-999-3222");
57+
phoneNumbers2.add("303-999-3222");
58+
phoneNumbers2.add("303-999-3777");
59+
60+
Student student3 =
61+
new Student(
62+
912453698l,
63+
"Fannie May",
64+
Department.Technology,
65+
66+
phoneNumbers3,
67+
LocalDate.of(2017, 9, 26));
68+
69+
students.put(112453698l, student1);
70+
students.put(712453698l, student2);
71+
students.put(912453698l, student3);
72+
73+
classUnderTest.addStudent(student1);
74+
classUnderTest.addStudent(student2);
75+
classUnderTest.addStudent(student3);
76+
}
77+
78+
@Test
79+
public void testDeleteStudent_throw_Exception_IFNumber_Not_Found() {
80+
// Arrange
81+
Student student =
82+
new Student(
83+
44444444l,
84+
"Gonnie ByeBye",
85+
Department.Technology,
86+
87+
null,
88+
LocalDate.of(2019, 10, 21));
89+
classUnderTest.addStudent(student);
90+
// Act
91+
classUnderTest.deleteStudent(student.getStudentNumber());
92+
93+
// Assert
94+
long studentNumber = 44444444l;
95+
assertThatThrownBy(() -> classUnderTest.deleteStudent(studentNumber))
96+
.isInstanceOf(StudentNotFoundException.class)
97+
.hasMessage("Student with number " + studentNumber + " not found");
98+
}
99+
100+
@Test
101+
public void testCountNumberOfTechDeptStudents_if_any() {
102+
Student student =
103+
new Student(
104+
44444444l,
105+
"Gonnie ByeBye",
106+
Department.Technology,
107+
108+
null,
109+
LocalDate.of(2019, 10, 21));
110+
classUnderTest.addStudent(student);
111+
// Act
112+
int numOfTechStudents = classUnderTest.countNumberOfTechDeptStudents();
113+
114+
// Assert
115+
int expectedCount = 3;
116+
assertEquals(expectedCount, numOfTechStudents);
117+
}
118+
119+
@Test
120+
public void testAddStudent() {
121+
// Arrange
122+
Student student =
123+
new Student(
124+
44444444l,
125+
"Gonnie ByeBye",
126+
Department.Technology,
127+
128+
null,
129+
LocalDate.of(2019, 10, 21));
130+
131+
// Act
132+
classUnderTest.addStudent(student);
133+
134+
// Assert
135+
int expectedCount = 3;
136+
assertEquals(expectedCount, students.size());
137+
}
138+
139+
@Test
140+
public void testFindStudentByStudentNumber_where_student_exist() {
141+
// Arrange
142+
Student student =
143+
new Student(
144+
44444444l,
145+
"Gonnie ByeBye",
146+
Department.Technology,
147+
148+
null,
149+
LocalDate.of(2019, 10, 21));
150+
classUnderTest.addStudent(student);
151+
152+
// Act
153+
classUnderTest.findStudentByStudentNumber(student.getStudentNumber());
154+
155+
// Assert
156+
long expectedStudentNumber = 44444444l;
157+
assertEquals(expectedStudentNumber, student.getStudentNumber());
158+
}
159+
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import static org.junit.jupiter.api.Assertions.assertEquals;
2-
import static org.junit.jupiter.api.Assertions.assertNotNull;
1+
package com.codedifferently.lesson16.studentinfo;
32

43
import java.time.LocalDate;
54
import java.util.ArrayList;
65
import java.util.List;
6+
7+
import static org.junit.jupiter.api.Assertions.assertEquals;
8+
import static org.junit.jupiter.api.Assertions.assertNotNull;
79
import org.junit.jupiter.api.BeforeEach;
810
import org.junit.jupiter.api.Test;
911

@@ -12,8 +14,6 @@ public class StudentTest {
1214

1315
@BeforeEach
1416
public void setUp() {
15-
// classUnderTest = new Student();
16-
// List<Student> studentList = new ArrayList<>();
1717
List<String> phoneNumbers = new ArrayList<>();
1818
phoneNumbers.add("302-999-2222");
1919
phoneNumbers.add("302-211-2222");

0 commit comments

Comments
 (0)