From ab57a85b80b43fd79a0a8d2d1129af6077833f6f Mon Sep 17 00:00:00 2001 From: jess10tindo Date: Sat, 26 Sep 2020 12:47:17 -0400 Subject: [PATCH 1/2] Completed Classroom OOP --- .../java/com/dtcc/projects/ClassRoom.java | 24 +++++++++++++ src/main/java/com/dtcc/projects/DelTech.java | 27 ++++++++++++++ .../java/com/dtcc/projects/Instructor.java | 20 +++++++++++ .../java/com/dtcc/projects/JavaAcademy.java | 28 +++++++++++++++ src/main/java/com/dtcc/projects/Learner.java | 5 +++ src/main/java/com/dtcc/projects/Person.java | 16 +++++++++ src/main/java/com/dtcc/projects/Student.java | 20 +++++++++++ src/main/java/com/dtcc/projects/Teacher.java | 6 ++++ src/main/main.iml | 11 ++++++ .../java/com/dtcc/projects/TestClassRoom.java | 24 +++++++++++++ .../java/com/dtcc/projects/TestDelTech.java | 28 +++++++++++++++ .../com/dtcc/projects/TestInstructor.java | 36 +++++++++++++++++++ .../com/dtcc/projects/TestJavAcademy.java | 28 +++++++++++++++ .../java/com/dtcc/projects/TestPerson.java | 17 +++++++++ .../java/com/dtcc/projects/TestStudent.java | 26 ++++++++++++++ src/test/test.iml | 22 ++++++++++++ 16 files changed, 338 insertions(+) create mode 100644 src/main/java/com/dtcc/projects/ClassRoom.java create mode 100644 src/main/java/com/dtcc/projects/DelTech.java create mode 100644 src/main/java/com/dtcc/projects/Instructor.java create mode 100644 src/main/java/com/dtcc/projects/JavaAcademy.java create mode 100644 src/main/java/com/dtcc/projects/Learner.java create mode 100644 src/main/java/com/dtcc/projects/Student.java create mode 100644 src/main/java/com/dtcc/projects/Teacher.java create mode 100644 src/main/main.iml create mode 100644 src/test/java/com/dtcc/projects/TestClassRoom.java create mode 100644 src/test/java/com/dtcc/projects/TestDelTech.java create mode 100644 src/test/java/com/dtcc/projects/TestInstructor.java create mode 100644 src/test/java/com/dtcc/projects/TestJavAcademy.java create mode 100644 src/test/java/com/dtcc/projects/TestStudent.java create mode 100644 src/test/test.iml diff --git a/src/main/java/com/dtcc/projects/ClassRoom.java b/src/main/java/com/dtcc/projects/ClassRoom.java new file mode 100644 index 0000000..15882a6 --- /dev/null +++ b/src/main/java/com/dtcc/projects/ClassRoom.java @@ -0,0 +1,24 @@ +package com.dtcc.projects; + +import java.util.ArrayList; +import java.util.HashMap; + +public class ClassRoom { + + private static ArrayList students = JavaAcademy.getStudents(); + + private static ArrayList instructors = DelTech.getInstructors(); + + public static HashMap getRoster(){ + HashMap roster = new HashMap<>(); + for(Student student : students){ + roster.put(student.getName(), student); + } + for(Instructor instructor : instructors){ + roster.put(instructor.getName(), instructor); + } + return roster; + } + + +} diff --git a/src/main/java/com/dtcc/projects/DelTech.java b/src/main/java/com/dtcc/projects/DelTech.java new file mode 100644 index 0000000..e9a71c7 --- /dev/null +++ b/src/main/java/com/dtcc/projects/DelTech.java @@ -0,0 +1,27 @@ +package com.dtcc.projects; + +import java.util.ArrayList; + +public class DelTech { + private static ArrayList instructorList = new ArrayList<>(); + + static{ + String[] instructorNames = {"Brian", "Kaleb", "Zan"}; + for(String instructorName : instructorNames){ + Instructor instructor = new Instructor(instructorName); + hire(instructor); + } + } + + public static void hire(Instructor instructor){ + instructorList.add(instructor); + } + + public static ArrayList getInstructors(){ + return instructorList; + } + + public static void fireStaff(){ + instructorList.clear(); + } +} diff --git a/src/main/java/com/dtcc/projects/Instructor.java b/src/main/java/com/dtcc/projects/Instructor.java new file mode 100644 index 0000000..b70493c --- /dev/null +++ b/src/main/java/com/dtcc/projects/Instructor.java @@ -0,0 +1,20 @@ +package com.dtcc.projects; + +public class Instructor extends Person implements Teacher{ + + public Instructor(){}; + + public Instructor(String instructorName){ + super(instructorName); + } + + public void teach(Student student, double numberOfHours) { + student.learn(numberOfHours); + } + + public void lecture(Student[] student, double numberOfHours) { + for(int i = 0; i < student.length; i++){ + student[i].learn(numberOfHours); + } + } +} diff --git a/src/main/java/com/dtcc/projects/JavaAcademy.java b/src/main/java/com/dtcc/projects/JavaAcademy.java new file mode 100644 index 0000000..d0bd9bc --- /dev/null +++ b/src/main/java/com/dtcc/projects/JavaAcademy.java @@ -0,0 +1,28 @@ +package com.dtcc.projects; + +import java.util.ArrayList; + +public class JavaAcademy { + private static ArrayList studentList = new ArrayList<>(); + + static { // static initializer + String[] studentNames = { "Jessica", "Emad", "Cedric", "Lolu", "Apoorva", "Vara", "Craig", "Robert", + "Stephen", "Ferdinand", "Charu" }; + for (String studentName : studentNames) { + Student student = new Student(studentName); + studentList.add(student); + } + } + + public static void recruitStudent(Student student){ + studentList.add(student); + } + + public static ArrayList getStudents(){ + return studentList; + } + + public static void removeStudents(){ + studentList.clear(); + } +} diff --git a/src/main/java/com/dtcc/projects/Learner.java b/src/main/java/com/dtcc/projects/Learner.java new file mode 100644 index 0000000..41b1b71 --- /dev/null +++ b/src/main/java/com/dtcc/projects/Learner.java @@ -0,0 +1,5 @@ +package com.dtcc.projects; + +public interface Learner { + void learn(double numberOfHours); +} diff --git a/src/main/java/com/dtcc/projects/Person.java b/src/main/java/com/dtcc/projects/Person.java index ff9713e..3cd9e6a 100644 --- a/src/main/java/com/dtcc/projects/Person.java +++ b/src/main/java/com/dtcc/projects/Person.java @@ -1,4 +1,20 @@ package com.dtcc.projects; public class Person { + + private String name; + + public Person(){} + + public Person(String name){ + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } } diff --git a/src/main/java/com/dtcc/projects/Student.java b/src/main/java/com/dtcc/projects/Student.java new file mode 100644 index 0000000..4597cd3 --- /dev/null +++ b/src/main/java/com/dtcc/projects/Student.java @@ -0,0 +1,20 @@ +package com.dtcc.projects; + +public class Student extends Person implements Learner{ + + private double totalStudyTime = 0; + + public Student(){}; + + public Student(String studentName){ + super(studentName); + } + + public void learn(double numberOfHours){ + totalStudyTime+=numberOfHours; + } + + public double getTotalStudyTime() { + return totalStudyTime; + } +} diff --git a/src/main/java/com/dtcc/projects/Teacher.java b/src/main/java/com/dtcc/projects/Teacher.java new file mode 100644 index 0000000..9ac1fb8 --- /dev/null +++ b/src/main/java/com/dtcc/projects/Teacher.java @@ -0,0 +1,6 @@ +package com.dtcc.projects; + +public interface Teacher { + void teach(Student student, double numberOfHours); + void lecture(Student[] student, double numberOfHours); +} diff --git a/src/main/main.iml b/src/main/main.iml new file mode 100644 index 0000000..908ad4f --- /dev/null +++ b/src/main/main.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/com/dtcc/projects/TestClassRoom.java b/src/test/java/com/dtcc/projects/TestClassRoom.java new file mode 100644 index 0000000..f7ee6d8 --- /dev/null +++ b/src/test/java/com/dtcc/projects/TestClassRoom.java @@ -0,0 +1,24 @@ +package com.dtcc.projects; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.HashMap; + +public class TestClassRoom { + + @Test + public void testRoster(){ + HashMap roster = ClassRoom.getRoster(); + for(Student student: JavaAcademy.getStudents()){ + Assert.assertTrue(roster.containsKey(student.getName())); + Assert.assertEquals(student, roster.get(student.getName())); + } + for(Instructor instructor: DelTech.getInstructors()){ + Assert.assertTrue(roster.containsKey(instructor.getName())); + Assert.assertEquals(instructor, roster.get(instructor.getName())); + } + } + +} diff --git a/src/test/java/com/dtcc/projects/TestDelTech.java b/src/test/java/com/dtcc/projects/TestDelTech.java new file mode 100644 index 0000000..84e4956 --- /dev/null +++ b/src/test/java/com/dtcc/projects/TestDelTech.java @@ -0,0 +1,28 @@ +package com.dtcc.projects; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class TestDelTech { + + DelTech deltech; + + @Before + public void setup(){ + deltech = new DelTech(); + deltech.fireStaff(); + } + + @Test + public void testFireStaff(){ + Assert.assertTrue(deltech.getInstructors().isEmpty()); + } + + @Test + public void testHireStaff(){ + Instructor instructor = new Instructor("Zan"); + deltech.hire(instructor); + Assert.assertTrue(deltech.getInstructors().contains(instructor)); + } +} diff --git a/src/test/java/com/dtcc/projects/TestInstructor.java b/src/test/java/com/dtcc/projects/TestInstructor.java new file mode 100644 index 0000000..d5f65bb --- /dev/null +++ b/src/test/java/com/dtcc/projects/TestInstructor.java @@ -0,0 +1,36 @@ +package com.dtcc.projects; + +import org.junit.Assert; +import org.junit.Test; + +public class TestInstructor { + + @Test + public void testImplementation(){ + Instructor instructor = new Instructor(); + Assert.assertTrue(instructor instanceof Teacher); + } + + @Test + public void testInheritance(){ + Instructor instructor = new Instructor(); + Assert.assertTrue(instructor instanceof Person); + } + + @Test + public void testTeach(){ + Instructor instructor = new Instructor(); + Student student = new Student(); + instructor.teach(student, 3); + Assert.assertEquals(3,student.getTotalStudyTime(), .0001); + } + @Test + public void testLecture(){ + Instructor instructor = new Instructor(); + Student student = new Student(); + instructor.teach(student, 3); + Assert.assertEquals(3,student.getTotalStudyTime(), .0001); + } + + +} diff --git a/src/test/java/com/dtcc/projects/TestJavAcademy.java b/src/test/java/com/dtcc/projects/TestJavAcademy.java new file mode 100644 index 0000000..cf2d7ea --- /dev/null +++ b/src/test/java/com/dtcc/projects/TestJavAcademy.java @@ -0,0 +1,28 @@ +package com.dtcc.projects; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class TestJavAcademy { + JavaAcademy javaAcademy; + + @Before + public void setup(){ + javaAcademy = new JavaAcademy(); + javaAcademy.removeStudents(); + } + + @Test + public void testRemoveStudents(){ + Assert.assertTrue(javaAcademy.getStudents().isEmpty()); + } + + @Test + public void testRecruitStudent(){ + Student student = new Student("Jess"); + javaAcademy.recruitStudent(student); + Assert.assertTrue(javaAcademy.getStudents().contains(student)); + } + +} diff --git a/src/test/java/com/dtcc/projects/TestPerson.java b/src/test/java/com/dtcc/projects/TestPerson.java index 040f78f..09f352e 100644 --- a/src/test/java/com/dtcc/projects/TestPerson.java +++ b/src/test/java/com/dtcc/projects/TestPerson.java @@ -1,4 +1,21 @@ package com.dtcc.projects; +import org.junit.Assert; +import org.junit.Test; + public class TestPerson { + + @Test + public void testSetName(){ + Person person = new Person(); + person.setName("John"); + Assert.assertEquals("John", person.getName()); + } + + @Test + public void testConstructor(){ + Person newPerson = new Person("Joe"); + Assert.assertEquals("Joe", newPerson.getName()); + } + } diff --git a/src/test/java/com/dtcc/projects/TestStudent.java b/src/test/java/com/dtcc/projects/TestStudent.java new file mode 100644 index 0000000..53fdf16 --- /dev/null +++ b/src/test/java/com/dtcc/projects/TestStudent.java @@ -0,0 +1,26 @@ +package com.dtcc.projects; + +import org.junit.Assert; +import org.junit.Test; + +public class TestStudent { + + @Test + public void testImplementation(){ + Student student = new Student(); + Assert.assertTrue(student instanceof Learner); + } + + @Test + public void testInheritance(){ + Student student = new Student(); + Assert.assertTrue(student instanceof Learner); + } + + @Test + public void testLearn(){ + Student student = new Student(); + student.learn(4); + Assert.assertEquals(4, student.getTotalStudyTime(), .0001); + } +} diff --git a/src/test/test.iml b/src/test/test.iml new file mode 100644 index 0000000..bf10073 --- /dev/null +++ b/src/test/test.iml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From ec2238b1c46b9b6c6cad2f1745b673285917b170 Mon Sep 17 00:00:00 2001 From: jess10tindo Date: Sat, 26 Sep 2020 12:51:46 -0400 Subject: [PATCH 2/2] Jess Code --- src/test/java/com/dtcc/projects/TestInstructor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/dtcc/projects/TestInstructor.java b/src/test/java/com/dtcc/projects/TestInstructor.java index d5f65bb..582291f 100644 --- a/src/test/java/com/dtcc/projects/TestInstructor.java +++ b/src/test/java/com/dtcc/projects/TestInstructor.java @@ -24,6 +24,7 @@ public void testTeach(){ instructor.teach(student, 3); Assert.assertEquals(3,student.getTotalStudyTime(), .0001); } + @Test public void testLecture(){ Instructor instructor = new Instructor();