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..bae85cf --- /dev/null +++ b/src/main/java/com/dtcc/projects/ClassRoom.java @@ -0,0 +1,22 @@ +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(); + + HashMap hash = new HashMap<>(); + + HashMap getRoster(){ + for(int i = 0; i < students.size(); i++){ + hash.put(students.get(i).getStudentName(),new Person(students.get(i).getStudentName())); + } + for(int j = 0; j < instructors.size(); j++){ + hash.put(students.get(j).getStudentName(),new Person(students.get(j).getStudentName())); + } + return hash; + } + +} 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..69f9775 --- /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 { // static initializer + 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..5ee48c3 --- /dev/null +++ b/src/main/java/com/dtcc/projects/Instructor.java @@ -0,0 +1,34 @@ +package com.dtcc.projects; + +public class Instructor extends Person implements Teacher { + private String instructorName; + private double numberOfHoursPerStudent; + + public Instructor(){ + + } + public Instructor(String instructorName){ + this.instructorName = instructorName; + } + + public String getInstructorName() { + return instructorName; + } + + public double getNumberOfHoursPerStudent() { + return numberOfHoursPerStudent; + } + + @Override + public void teach(Student student, double numberOfHours) { + student.learn(numberOfHours); + } + + @Override + public void lecture(Student[] student, double numberOfHours) { + for (int i = 0; i < student.length; i++){ + student[i].learn(numberOfHours); + } + this.numberOfHoursPerStudent = numberOfHours / student.length; + } +} 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..c9e05e7 --- /dev/null +++ b/src/main/java/com/dtcc/projects/JavaAcademy.java @@ -0,0 +1,27 @@ +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..ba74d3f --- /dev/null +++ b/src/main/java/com/dtcc/projects/Learner.java @@ -0,0 +1,6 @@ +package com.dtcc.projects; + +public interface Learner { + + public 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..f7b54a7 100644 --- a/src/main/java/com/dtcc/projects/Person.java +++ b/src/main/java/com/dtcc/projects/Person.java @@ -1,4 +1,19 @@ package com.dtcc.projects; public class Person { + private String name; + + public Person(){} + public Person(String name){ + this.name = name; + } + + public String getName(){ + return name; + } + + public void setName(String name) { + this.name = 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..16dba22 --- /dev/null +++ b/src/main/java/com/dtcc/projects/Student.java @@ -0,0 +1,26 @@ +package com.dtcc.projects; + +public class Student extends Person implements Learner{ + private double totalStudyTime; + private String studentName; + + public Student(){ + + } + + public Student(String studentName){ + this.studentName = studentName; + } + + public void learn(double numberOfHours) { + this.totalStudyTime = this.totalStudyTime + numberOfHours; + } + + public double getTotalStudyTime() { + return totalStudyTime; + } + + public String getStudentName() { + return studentName; + } +} 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..870d580 --- /dev/null +++ b/src/main/java/com/dtcc/projects/Teacher.java @@ -0,0 +1,6 @@ +package com.dtcc.projects; + +public interface Teacher { + public void teach(Student student, double numberOfHours); + public void lecture(Student[] student, double numberOfHours); +} diff --git a/src/test/java/com/dtcc/projects/ClassRoomTest.java b/src/test/java/com/dtcc/projects/ClassRoomTest.java new file mode 100644 index 0000000..9afde0e --- /dev/null +++ b/src/test/java/com/dtcc/projects/ClassRoomTest.java @@ -0,0 +1,29 @@ +package com.dtcc.projects; + +import junit.framework.TestCase; +import org.junit.Assert; + +import java.util.HashMap; +import java.util.Map; + +public class ClassRoomTest extends TestCase { + ClassRoom classRoom; + HashMap map = new HashMap<>(); + public void setUp() { + classRoom = new ClassRoom(); + map = classRoom.getRoster(); + } + + public void testGetRosterKeys() { + Assert.assertEquals(11,map.size()); + Assert.assertTrue(map.containsKey("Lolu")); + } + + public void testGetRosterValues(){ + for(Map.Entry enter : map.entrySet()){ + String key = enter.getKey(); + Person pers = enter.getValue(); + Assert.assertEquals(key,pers.getName()); + } + } +} \ No newline at end of file diff --git a/src/test/java/com/dtcc/projects/DelTechTest.java b/src/test/java/com/dtcc/projects/DelTechTest.java new file mode 100644 index 0000000..06681d0 --- /dev/null +++ b/src/test/java/com/dtcc/projects/DelTechTest.java @@ -0,0 +1,26 @@ +package com.dtcc.projects; + +import junit.framework.TestCase; +import org.junit.Assert; + +import java.util.ArrayList; + +public class DelTechTest extends TestCase { + DelTech delTech; + ArrayList instruct; + public void setUp() throws Exception { + delTech = new DelTech(); + DelTech.fireStaff(); + } + + public void testHire() { + String actual = "Vara"; + DelTech.hire(new Instructor(actual)); + instruct = DelTech.getInstructors(); + Assert.assertEquals("Vara",instruct.get(0).getInstructorName()); + } + + public void testFireStaff() { + Assert.assertEquals(0,DelTech.getInstructors().size()); + } +} \ No newline at end of file diff --git a/src/test/java/com/dtcc/projects/InstructorTest.java b/src/test/java/com/dtcc/projects/InstructorTest.java new file mode 100644 index 0000000..58236a7 --- /dev/null +++ b/src/test/java/com/dtcc/projects/InstructorTest.java @@ -0,0 +1,35 @@ +package com.dtcc.projects; + +import junit.framework.TestCase; +import org.junit.Assert; + +public class InstructorTest extends TestCase { + + private Instructor instructor; + + public void setUp() { + instructor = new Instructor(); + } + + public void testImplementation() { + Assert.assertTrue(instructor instanceof Teacher); + } + + public void testInheritance() { + Assert.assertTrue(instructor instanceof Person); + } + + public void testTeach() { + Student student = new Student("Lolu"); + instructor.teach(student, 8); + double expected = student.getTotalStudyTime(); + Assert.assertEquals(8,expected,1); + } + + public void testLecture() { + Student[] students = {new Student("Lolu")}; + instructor.lecture(students, 8); + double expected = instructor.getNumberOfHoursPerStudent(); + Assert.assertEquals(8,expected,1); + } +} \ No newline at end of file diff --git a/src/test/java/com/dtcc/projects/JavaAcademyTest.java b/src/test/java/com/dtcc/projects/JavaAcademyTest.java new file mode 100644 index 0000000..02a6bca --- /dev/null +++ b/src/test/java/com/dtcc/projects/JavaAcademyTest.java @@ -0,0 +1,25 @@ +package com.dtcc.projects; + +import junit.framework.TestCase; +import org.junit.Assert; + +import java.util.ArrayList; + +public class JavaAcademyTest extends TestCase { + JavaAcademy javaAcademy; + + public void setUp() throws Exception { + javaAcademy = new JavaAcademy(); + JavaAcademy.removeStudents(); + } + public void testRecruitStudent() { + Student student = new Student("Zoe"); + String actual = "Zoe"; + JavaAcademy.recruitStudent(student); + Assert.assertEquals("Zoe",JavaAcademy.getStudents().get(0).getStudentName()); + } + + public void testRemoveStudents() { + Assert.assertTrue(JavaAcademy.getStudents().isEmpty()); + } +} \ No newline at end of file diff --git a/src/test/java/com/dtcc/projects/TestPerson.java b/src/test/java/com/dtcc/projects/TestPerson.java index 040f78f..511b2da 100644 --- a/src/test/java/com/dtcc/projects/TestPerson.java +++ b/src/test/java/com/dtcc/projects/TestPerson.java @@ -1,4 +1,23 @@ package com.dtcc.projects; +import org.junit.Assert; +import org.junit.Test; + public class TestPerson { + + @Test + public void testSetName(){ + String expected = "Lolu"; + Person person = new Person(expected); + String actual = person.getName(); + Assert.assertEquals(expected, actual); + } + + @Test + public void testConstructor(){ + String expected = "Lolu"; + Person person = new Person(expected); + String actual = person.getName(); + Assert.assertEquals(expected, actual); + } } 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..a0a1262 --- /dev/null +++ b/src/test/java/com/dtcc/projects/TestStudent.java @@ -0,0 +1,26 @@ +package com.dtcc.projects; + +import junit.framework.TestCase; +import org.junit.Assert; + +public class TestStudent extends TestCase { + Student student; + public void setUp() throws Exception { + student = new Student(); + } + + public void testImplementation() { + Assert.assertTrue(student instanceof Learner); + } + + public void testLearn() { + student.learn(5.00); + double actual = 5.00; + double expected = student.getTotalStudyTime(); + Assert.assertEquals(actual,expected,1); + } + + public void testInheritance() { + Assert.assertTrue(student instanceof Person); + } +} \ No newline at end of file diff --git a/target/classes/com/dtcc/projects/ClassRoom.class b/target/classes/com/dtcc/projects/ClassRoom.class new file mode 100644 index 0000000..04c7b9c Binary files /dev/null and b/target/classes/com/dtcc/projects/ClassRoom.class differ diff --git a/target/classes/com/dtcc/projects/DelTech.class b/target/classes/com/dtcc/projects/DelTech.class new file mode 100644 index 0000000..06b3ba6 Binary files /dev/null and b/target/classes/com/dtcc/projects/DelTech.class differ diff --git a/target/classes/com/dtcc/projects/Instructor.class b/target/classes/com/dtcc/projects/Instructor.class new file mode 100644 index 0000000..c3dfbfc Binary files /dev/null and b/target/classes/com/dtcc/projects/Instructor.class differ diff --git a/target/classes/com/dtcc/projects/JavaAcademy.class b/target/classes/com/dtcc/projects/JavaAcademy.class new file mode 100644 index 0000000..211324f Binary files /dev/null and b/target/classes/com/dtcc/projects/JavaAcademy.class differ diff --git a/target/classes/com/dtcc/projects/Learner.class b/target/classes/com/dtcc/projects/Learner.class new file mode 100644 index 0000000..64b9cf6 Binary files /dev/null and b/target/classes/com/dtcc/projects/Learner.class differ diff --git a/target/classes/com/dtcc/projects/Person.class b/target/classes/com/dtcc/projects/Person.class new file mode 100644 index 0000000..27fc0ea Binary files /dev/null and b/target/classes/com/dtcc/projects/Person.class differ diff --git a/target/classes/com/dtcc/projects/Student.class b/target/classes/com/dtcc/projects/Student.class new file mode 100644 index 0000000..806570a Binary files /dev/null and b/target/classes/com/dtcc/projects/Student.class differ diff --git a/target/classes/com/dtcc/projects/Teacher.class b/target/classes/com/dtcc/projects/Teacher.class new file mode 100644 index 0000000..53a48f8 Binary files /dev/null and b/target/classes/com/dtcc/projects/Teacher.class differ diff --git a/target/test-classes/com/dtcc/projects/ClassRoomTest.class b/target/test-classes/com/dtcc/projects/ClassRoomTest.class new file mode 100644 index 0000000..69a6164 Binary files /dev/null and b/target/test-classes/com/dtcc/projects/ClassRoomTest.class differ diff --git a/target/test-classes/com/dtcc/projects/DelTechTest.class b/target/test-classes/com/dtcc/projects/DelTechTest.class new file mode 100644 index 0000000..97e2a81 Binary files /dev/null and b/target/test-classes/com/dtcc/projects/DelTechTest.class differ diff --git a/target/test-classes/com/dtcc/projects/InstructorTest.class b/target/test-classes/com/dtcc/projects/InstructorTest.class new file mode 100644 index 0000000..46aa27d Binary files /dev/null and b/target/test-classes/com/dtcc/projects/InstructorTest.class differ diff --git a/target/test-classes/com/dtcc/projects/JavaAcademyTest.class b/target/test-classes/com/dtcc/projects/JavaAcademyTest.class new file mode 100644 index 0000000..f87e816 Binary files /dev/null and b/target/test-classes/com/dtcc/projects/JavaAcademyTest.class differ diff --git a/target/test-classes/com/dtcc/projects/TestPerson.class b/target/test-classes/com/dtcc/projects/TestPerson.class new file mode 100644 index 0000000..97f3076 Binary files /dev/null and b/target/test-classes/com/dtcc/projects/TestPerson.class differ diff --git a/target/test-classes/com/dtcc/projects/TestStudent.class b/target/test-classes/com/dtcc/projects/TestStudent.class new file mode 100644 index 0000000..4d6ef48 Binary files /dev/null and b/target/test-classes/com/dtcc/projects/TestStudent.class differ