From 83d2da996033bec5edd0db9698ce2dd3e5b7ad7f Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Tue, 12 Nov 2019 17:32:16 -0500 Subject: [PATCH 1/4] finished up to part 6 --- .idea/$PRODUCT_WORKSPACE_FILE$ | 19 +++++++ .idea/.gitignore | 3 ++ .idea/.name | 1 + .idea/compiler.xml | 16 ++++++ .idea/encodings.xml | 6 +++ .idea/libraries/Maven__junit_junit_4_12.xml | 13 +++++ .../Maven__org_hamcrest_hamcrest_core_1_3.xml | 13 +++++ .idea/misc.xml | 13 +++++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 +++ interfaces-1.iml | 16 ++++++ .../io/zipcoder/interfaces/Instructor.java | 21 ++++++++ .../java/io/zipcoder/interfaces/Learner.java | 7 +++ .../java/io/zipcoder/interfaces/People.java | 51 +++++++++++++++++++ .../java/io/zipcoder/interfaces/Person.java | 18 +++++++ .../java/io/zipcoder/interfaces/Student.java | 19 +++++++ .../java/io/zipcoder/interfaces/Teacher.java | 9 ++++ .../zipcoder/interfaces/TestInstructor.java | 47 +++++++++++++++++ .../io/zipcoder/interfaces/TestPerson.java | 24 +++++++++ .../io/zipcoder/interfaces/TestStudent.java | 32 ++++++++++++ 20 files changed, 342 insertions(+) create mode 100644 .idea/$PRODUCT_WORKSPACE_FILE$ create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 interfaces-1.iml create mode 100644 src/main/java/io/zipcoder/interfaces/Instructor.java create mode 100644 src/main/java/io/zipcoder/interfaces/Learner.java create mode 100644 src/main/java/io/zipcoder/interfaces/People.java create mode 100644 src/main/java/io/zipcoder/interfaces/Student.java create mode 100644 src/main/java/io/zipcoder/interfaces/Teacher.java create mode 100644 src/test/java/io/zipcoder/interfaces/TestInstructor.java create mode 100644 src/test/java/io/zipcoder/interfaces/TestStudent.java diff --git a/.idea/$PRODUCT_WORKSPACE_FILE$ b/.idea/$PRODUCT_WORKSPACE_FILE$ new file mode 100644 index 00000000..3733e0d3 --- /dev/null +++ b/.idea/$PRODUCT_WORKSPACE_FILE$ @@ -0,0 +1,19 @@ + + + + + + + 1.8 + + + + + + + + \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..0e40fe8f --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ + +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 00000000..a0f2c3a1 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +interfaces-1 \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..fdc60f4f --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..b26911bd --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml new file mode 100644 index 00000000..d4110417 --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 00000000..f58bbc11 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..ab4c8a3f --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..711b3a53 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/interfaces-1.iml b/interfaces-1.iml new file mode 100644 index 00000000..0ddf51c1 --- /dev/null +++ b/interfaces-1.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/io/zipcoder/interfaces/Instructor.java b/src/main/java/io/zipcoder/interfaces/Instructor.java new file mode 100644 index 00000000..131a0d16 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructor.java @@ -0,0 +1,21 @@ +package io.zipcoder.interfaces; + +public class Instructor extends Person implements Teacher{ + + public Instructor(Long id, String name) { + super(id, name); + } + + public void teach(Learner learner, double numberOfHours) { + learner.learn(numberOfHours); + } + + public void lecture(Learner[] learners, double numberOfHours) { + double numberofHoursPerStudent = numberOfHours / learners.length; + for(Learner learner : learners) + learner.learn(numberofHoursPerStudent); + } + + + +} diff --git a/src/main/java/io/zipcoder/interfaces/Learner.java b/src/main/java/io/zipcoder/interfaces/Learner.java new file mode 100644 index 00000000..216f3167 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Learner.java @@ -0,0 +1,7 @@ +package io.zipcoder.interfaces; + +public interface Learner { + + void learn(double numberOfHours); + Double getTotalStudyTime(); +} diff --git a/src/main/java/io/zipcoder/interfaces/People.java b/src/main/java/io/zipcoder/interfaces/People.java new file mode 100644 index 00000000..47fe3234 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -0,0 +1,51 @@ +package io.zipcoder.interfaces; + +import java.util.Iterator; +import java.util.List; + +public class People implements Iterable { + + List personList; + + public void add(Person person){ + personList.add(person); + } + + public Person findById(long id){ + for(Person person : personList) + if(person.getId() == id) + return person; + + return null; + } + + public boolean contains(Person person){ + return personList.contains(person); + } + + public void removeByPerson(Person person){ + personList.remove(person); + } + + public void removeById(long id){ + for(Person person : personList) + if(person.getId() == id) + personList.remove(person); + } + + public void removeAll(){ + personList.clear(); + } + + public int count(){ + return personList.size(); + } + + public Person[] toArray(){ + return ((Person[]) personList.toArray()); + } + + public Iterator iterator() { + return null; + } +} diff --git a/src/main/java/io/zipcoder/interfaces/Person.java b/src/main/java/io/zipcoder/interfaces/Person.java index fc6a3ffe..144477d6 100644 --- a/src/main/java/io/zipcoder/interfaces/Person.java +++ b/src/main/java/io/zipcoder/interfaces/Person.java @@ -1,5 +1,23 @@ package io.zipcoder.interfaces; public class Person { + final Long id; + String name; + public Person(Long id, String name){ + this.id = id; + this.name = name; + } + + public Long getId(){ + return this.id; + } + + public String getName(){ + return this.name; + } + + public void setName(String name){ + this.name = name; + } } diff --git a/src/main/java/io/zipcoder/interfaces/Student.java b/src/main/java/io/zipcoder/interfaces/Student.java new file mode 100644 index 00000000..74dd0139 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Student.java @@ -0,0 +1,19 @@ +package io.zipcoder.interfaces; + +public class Student extends Person implements Learner{ + + double totalStudyTime; + + public Student(Long id, String name) { + super(id, name); + } + + + public void learn(double numberOfHours) { + totalStudyTime += numberOfHours; + } + + public Double getTotalStudyTime() { + return totalStudyTime; + } +} diff --git a/src/main/java/io/zipcoder/interfaces/Teacher.java b/src/main/java/io/zipcoder/interfaces/Teacher.java new file mode 100644 index 00000000..4a3a4dbe --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Teacher.java @@ -0,0 +1,9 @@ +package io.zipcoder.interfaces; + +public interface Teacher { + + void teach(Learner learner, double numberOfHours); + void lecture(Learner[] learner, double numberOfHours); + + +} diff --git a/src/test/java/io/zipcoder/interfaces/TestInstructor.java b/src/test/java/io/zipcoder/interfaces/TestInstructor.java new file mode 100644 index 00000000..03d46574 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestInstructor.java @@ -0,0 +1,47 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestInstructor { + + @Test + public void implementInstructorTest(){ + Instructor instructorOne = new Instructor(1232L, "Dolio"); + + Assert.assertTrue(instructorOne instanceof Teacher); + } + + @Test + public void inheritanceInstructorTest(){ + Instructor instructorOne = new Instructor(1232L, "Dolio"); + + Assert.assertTrue(instructorOne instanceof Person); + } + + @Test + public void teachTest(){ + Instructor instructorOne = new Instructor(1232L, "Dolio"); + Student studentOne = new Student(1333L, "Joe"); + double expectedTime = 20.0; + instructorOne.teach(studentOne, expectedTime); + double actualTime = studentOne.getTotalStudyTime(); + + Assert.assertEquals(expectedTime, actualTime, 0); + } + + @Test + public void lectureTest(){ + Instructor instructorOne = new Instructor(1232L, "Dolio"); + Student studentOne = new Student(1333L, "Joe"); + Student studentTwo = new Student(123222L, "Zoe"); + + Learner[] students = {studentOne, studentTwo}; + instructorOne.lecture(students, 36); + + double expectedTime = 18; + double actualTime = studentTwo.getTotalStudyTime(); + + Assert.assertEquals(expectedTime, actualTime, 0); + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestPerson.java b/src/test/java/io/zipcoder/interfaces/TestPerson.java index d64cd2f0..c904f37d 100644 --- a/src/test/java/io/zipcoder/interfaces/TestPerson.java +++ b/src/test/java/io/zipcoder/interfaces/TestPerson.java @@ -1,5 +1,29 @@ package io.zipcoder.interfaces; +import org.junit.Assert; +import org.junit.Test; + public class TestPerson { + @Test + public void PersonConstructorTest(){ + Person personOne = new Person(1234L, "Maira"); + Long expectedId = 1234L; + Long actualId = personOne.getId(); + String expectedName = "Maira"; + String actualName = personOne.getName(); + + Assert.assertEquals(expectedId, actualId); + Assert.assertEquals(expectedName, actualName); + } + + @Test + public void setNameTest(){ + Person personOne = new Person(1234L, "Maira"); + personOne.setName("Brian"); + String expectedName = "Brian"; + String actualName = personOne.getName(); + + Assert.assertEquals(expectedName,actualName); + } } diff --git a/src/test/java/io/zipcoder/interfaces/TestStudent.java b/src/test/java/io/zipcoder/interfaces/TestStudent.java new file mode 100644 index 00000000..805f6e42 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestStudent.java @@ -0,0 +1,32 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestStudent { + + @Test + public void implementStudentTest(){ + Student studentOne = new Student(1333L, "Joe"); + + Assert.assertTrue(studentOne instanceof Learner); + } + + @Test + public void inheritanceTest(){ + Student studentOne = new Student(1333L, "Joe"); + + Assert.assertTrue(studentOne instanceof Person); + } + + @Test + public void learnTest(){ + Student studentOne = new Student(1333L, "Joe"); + studentOne.learn(10); + double actualStudy = studentOne.getTotalStudyTime(); + double expectedStudy = 10; + + Assert.assertEquals(expectedStudy, actualStudy, 0); + + } +} From 0f05cb6c705dc4ac55143a268a16328c349f6857 Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Wed, 13 Nov 2019 13:28:51 -0500 Subject: [PATCH 2/4] finished up to part 8 --- .../io/zipcoder/interfaces/Instructors.java | 20 ++++++ .../java/io/zipcoder/interfaces/People.java | 11 ++-- .../java/io/zipcoder/interfaces/Students.java | 20 ++++++ .../interfaces/ZipCodeWilmington.java | 4 ++ .../zipcoder/interfaces/TestInstructors.java | 37 +++++++++++ .../io/zipcoder/interfaces/TestPeople.java | 63 +++++++++++++++++++ .../io/zipcoder/interfaces/TestStudents.java | 37 +++++++++++ 7 files changed, 188 insertions(+), 4 deletions(-) create mode 100644 src/main/java/io/zipcoder/interfaces/Instructors.java create mode 100644 src/main/java/io/zipcoder/interfaces/Students.java create mode 100644 src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java create mode 100644 src/test/java/io/zipcoder/interfaces/TestInstructors.java create mode 100644 src/test/java/io/zipcoder/interfaces/TestPeople.java create mode 100644 src/test/java/io/zipcoder/interfaces/TestStudents.java diff --git a/src/main/java/io/zipcoder/interfaces/Instructors.java b/src/main/java/io/zipcoder/interfaces/Instructors.java new file mode 100644 index 00000000..ab23b2f4 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -0,0 +1,20 @@ +package io.zipcoder.interfaces; + +public final class Instructors extends People{ + + private static final Instructors INSTANCE = new Instructors(); + + private Instructors(){ + + Instructor instructorOne = new Instructor(311412L, "Dolio"); + Instructor instructorTwo = new Instructor(24302L, "Roberto"); + + personList.add(instructorOne); + personList.add(instructorTwo); + + } + + public static Instructors getInstance(){ + return INSTANCE; + } +} diff --git a/src/main/java/io/zipcoder/interfaces/People.java b/src/main/java/io/zipcoder/interfaces/People.java index 47fe3234..18ddda5d 100644 --- a/src/main/java/io/zipcoder/interfaces/People.java +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -1,5 +1,6 @@ package io.zipcoder.interfaces; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -7,6 +8,10 @@ public class People implements Iterable { List personList; + public People(){ + personList = new ArrayList(); + } + public void add(Person person){ personList.add(person); } @@ -28,9 +33,7 @@ public void removeByPerson(Person person){ } public void removeById(long id){ - for(Person person : personList) - if(person.getId() == id) - personList.remove(person); + personList.remove(findById(id)); } public void removeAll(){ @@ -46,6 +49,6 @@ public Person[] toArray(){ } public Iterator iterator() { - return null; + return personList.iterator(); } } diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java new file mode 100644 index 00000000..0648f481 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -0,0 +1,20 @@ +package io.zipcoder.interfaces; + +public final class Students extends People{ + + private static final Students INSTANCE = new Students(); + + private Students(){ + + Student studentOne = new Student(212242L, "Brian"); + Student studentTwo = new Student(121231L, "Kievina"); + + personList.add(studentOne); + personList.add(studentTwo); + + } + + public static Students getInstance(){ + return INSTANCE; + } +} diff --git a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java new file mode 100644 index 00000000..f9bad7e6 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public class ZipCodeWilmington { +} diff --git a/src/test/java/io/zipcoder/interfaces/TestInstructors.java b/src/test/java/io/zipcoder/interfaces/TestInstructors.java new file mode 100644 index 00000000..3e262b46 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestInstructors.java @@ -0,0 +1,37 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestInstructors { + + @Test + public void getInstanceTest(){ + + Instructors test = Instructors.getInstance(); + int actual = test.personList.size(); + + Assert.assertEquals(2, actual); + + } + @Test + public void getInstanceTest2(){ + + Instructors testTwo = Instructors.getInstance(); + + boolean personOne = false; + boolean personTwo = false; + + for(Person person : testTwo.personList){ + if(person.getId().equals(311412L) && person.getName().equals("Dolio")) + personOne = true; + + if(person.getId().equals(121231L) && person.getName().equals("Roberto")) + personTwo = true; + } + + Assert.assertTrue(personOne); + Assert.assertTrue(personTwo); + } +} + diff --git a/src/test/java/io/zipcoder/interfaces/TestPeople.java b/src/test/java/io/zipcoder/interfaces/TestPeople.java new file mode 100644 index 00000000..abdb8e7f --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestPeople.java @@ -0,0 +1,63 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestPeople { + + @Test + public void addTest(){ + People newPeople = new People(); + Person personOne = new Person(398429847L, "Brian"); + + int expectedPeeps = 1; + newPeople.add(personOne); + int actualPeeps = newPeople.count(); + + Assert.assertEquals(expectedPeeps, actualPeeps); + } + + @Test + public void removebyIDTest(){ + People newPeople = new People(); + Person personOne = new Person(398429847L, "Brian"); + Person personTwo = new Person(242487613L, "Mike"); + + int expectedPeeps = 1; + newPeople.add(personOne); + newPeople.add(personTwo); + newPeople.removeById(242487613L); + int actualPeeps = newPeople.count(); + + Assert.assertEquals(expectedPeeps, actualPeeps); + } + + @Test + public void removeAllTest(){ + People newPeople = new People(); + Person personOne = new Person(398429847L, "Brian"); + Person personTwo = new Person(242487613L, "Mike"); + + int expectedPeeps = 0; + newPeople.add(personOne); + newPeople.add(personTwo); + newPeople.removeAll(); + int actualPeeps = newPeople.count(); + + Assert.assertEquals(expectedPeeps, actualPeeps); + } + + + @Test + public void findByIdTest(){ + People newPeople = new People(); + Person personOne = new Person(398429847L, "Brian"); + + long expectedPersonById = 398429847L; + newPeople.add(personOne); + long actualPersonById = personOne.getId(); + + Assert.assertEquals(expectedPersonById, actualPersonById); + } + +} diff --git a/src/test/java/io/zipcoder/interfaces/TestStudents.java b/src/test/java/io/zipcoder/interfaces/TestStudents.java new file mode 100644 index 00000000..abd0668c --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestStudents.java @@ -0,0 +1,37 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestStudents { + + @Test + public void getInstanceTest(){ + + Students test = Students.getInstance(); + int actual = test.personList.size(); + + Assert.assertEquals(2,actual); + + } + @Test + public void getInstanceTest2(){ + + Students testTwo = Students.getInstance(); + + boolean personOne = false; + boolean personTwo = false; + + for(Person person : testTwo.personList){ + if(person.getId().equals(212242L) && person.getName().equals("Brian")) + personOne = true; + + if(person.getId().equals(121231L) && person.getName().equals("Kievina")) + personTwo = true; + } + + Assert.assertTrue(personOne); + Assert.assertTrue(personTwo); + + } +} From 71db22613ad2d0f5b364a505b82abc7866f46a3b Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Wed, 13 Nov 2019 20:39:09 -0500 Subject: [PATCH 3/4] Finished up to 11.1 --- .../io/zipcoder/interfaces/Instructors.java | 10 ++++-- .../java/io/zipcoder/interfaces/People.java | 22 ++++++------ .../java/io/zipcoder/interfaces/Students.java | 8 ++++- .../interfaces/ZipCodeWilmington.java | 36 ++++++++++++++++++- .../zipcoder/interfaces/TestInstructors.java | 2 +- .../io/zipcoder/interfaces/TestPeople.java | 30 +++++++--------- .../interfaces/TestZipCodeWilmington.java | 16 +++++++++ 7 files changed, 90 insertions(+), 34 deletions(-) create mode 100644 src/test/java/io/zipcoder/interfaces/TestZipCodeWilmington.java diff --git a/src/main/java/io/zipcoder/interfaces/Instructors.java b/src/main/java/io/zipcoder/interfaces/Instructors.java index ab23b2f4..6c59277a 100644 --- a/src/main/java/io/zipcoder/interfaces/Instructors.java +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -1,11 +1,13 @@ package io.zipcoder.interfaces; -public final class Instructors extends People{ +public final class Instructors extends People{ private static final Instructors INSTANCE = new Instructors(); - private Instructors(){ + + private Instructors(){ + super(); Instructor instructorOne = new Instructor(311412L, "Dolio"); Instructor instructorTwo = new Instructor(24302L, "Roberto"); @@ -14,6 +16,10 @@ private Instructors(){ } + Instructor[] getArray() { + return personList.toArray(new Instructor[personList.size()]); + } + public static Instructors getInstance(){ return INSTANCE; } diff --git a/src/main/java/io/zipcoder/interfaces/People.java b/src/main/java/io/zipcoder/interfaces/People.java index 18ddda5d..77684c35 100644 --- a/src/main/java/io/zipcoder/interfaces/People.java +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -4,31 +4,31 @@ import java.util.Iterator; import java.util.List; -public class People implements Iterable { +abstract class People implements Iterable { - List personList; + List personList; public People(){ - personList = new ArrayList(); + personList = new ArrayList(); } - public void add(Person person){ + public void add(E person){ personList.add(person); } - public Person findById(long id){ - for(Person person : personList) + public E findById(long id){ + for(E person : personList) if(person.getId() == id) return person; return null; } - public boolean contains(Person person){ + public boolean contains(E person){ return personList.contains(person); } - public void removeByPerson(Person person){ + public void removeByPerson(E person){ personList.remove(person); } @@ -44,11 +44,9 @@ public int count(){ return personList.size(); } - public Person[] toArray(){ - return ((Person[]) personList.toArray()); - } + abstract E[] getArray(); - public Iterator iterator() { + public Iterator iterator() { return personList.iterator(); } } diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index 0648f481..0f0810c1 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -1,6 +1,6 @@ package io.zipcoder.interfaces; -public final class Students extends People{ +public final class Students extends People{ private static final Students INSTANCE = new Students(); @@ -14,6 +14,12 @@ private Students(){ } + @Override + public Student[] getArray(){ + + return personList.toArray(new Student[personList.size()]); + } + public static Students getInstance(){ return INSTANCE; } diff --git a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java index f9bad7e6..3494da49 100644 --- a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -1,4 +1,38 @@ package io.zipcoder.interfaces; -public class ZipCodeWilmington { +import java.util.HashMap; +import java.util.Map; + +public final class ZipCodeWilmington { + + private final Students students = Students.getInstance(); + private final Instructors instructors = Instructors.getInstance(); + private static final ZipCodeWilmington INSTANCE = new ZipCodeWilmington(); + + private ZipCodeWilmington(){ + } + + public void hostLecture(Teacher teacher, double numberOfHours){ + teacher.lecture(students.getArray(), numberOfHours); + } + + public void hostLecture(long id, double numberOfHours){ + Teacher teacher = (Teacher) instructors.findById(id); + hostLecture(teacher, numberOfHours); + } + + public HashMap getStudyMap(){ + HashMap studyMap = new HashMap(); + for(Person person : students.getArray()){ + Student student = (Student) person; + studyMap.put(student, student.getTotalStudyTime()); + } + return studyMap; + } + + public static ZipCodeWilmington getInstance(){ + return INSTANCE; + } + + } diff --git a/src/test/java/io/zipcoder/interfaces/TestInstructors.java b/src/test/java/io/zipcoder/interfaces/TestInstructors.java index 3e262b46..fd17fb07 100644 --- a/src/test/java/io/zipcoder/interfaces/TestInstructors.java +++ b/src/test/java/io/zipcoder/interfaces/TestInstructors.java @@ -26,7 +26,7 @@ public void getInstanceTest2(){ if(person.getId().equals(311412L) && person.getName().equals("Dolio")) personOne = true; - if(person.getId().equals(121231L) && person.getName().equals("Roberto")) + if(person.getId().equals(24302L) && person.getName().equals("Roberto")) personTwo = true; } diff --git a/src/test/java/io/zipcoder/interfaces/TestPeople.java b/src/test/java/io/zipcoder/interfaces/TestPeople.java index abdb8e7f..25d7146d 100644 --- a/src/test/java/io/zipcoder/interfaces/TestPeople.java +++ b/src/test/java/io/zipcoder/interfaces/TestPeople.java @@ -5,38 +5,34 @@ public class TestPeople { + @Test public void addTest(){ - People newPeople = new People(); - Person personOne = new Person(398429847L, "Brian"); - - int expectedPeeps = 1; + Student personOne = new Student(398429847L, "Brian"); + Students newPeople = Students.getInstance(); newPeople.add(personOne); - int actualPeeps = newPeople.count(); - Assert.assertEquals(expectedPeeps, actualPeeps); + Assert.assertTrue(newPeople.contains(personOne)); } @Test public void removebyIDTest(){ - People newPeople = new People(); - Person personOne = new Person(398429847L, "Brian"); - Person personTwo = new Person(242487613L, "Mike"); + Students newPeople = Students.getInstance(); + Student personOne = new Student(398429847L, "Brian"); + Student personTwo = new Student(242487613L, "Mike"); - int expectedPeeps = 1; newPeople.add(personOne); newPeople.add(personTwo); newPeople.removeById(242487613L); - int actualPeeps = newPeople.count(); - Assert.assertEquals(expectedPeeps, actualPeeps); + Assert.assertFalse(newPeople.contains(personTwo)); } @Test public void removeAllTest(){ - People newPeople = new People(); - Person personOne = new Person(398429847L, "Brian"); - Person personTwo = new Person(242487613L, "Mike"); + Students newPeople = Students.getInstance(); + Student personOne = new Student(398429847L, "Brian"); + Student personTwo = new Student(242487613L, "Mike"); int expectedPeeps = 0; newPeople.add(personOne); @@ -50,8 +46,8 @@ public void removeAllTest(){ @Test public void findByIdTest(){ - People newPeople = new People(); - Person personOne = new Person(398429847L, "Brian"); + Students newPeople = Students.getInstance(); + Student personOne = new Student(398429847L, "Brian"); long expectedPersonById = 398429847L; newPeople.add(personOne); diff --git a/src/test/java/io/zipcoder/interfaces/TestZipCodeWilmington.java b/src/test/java/io/zipcoder/interfaces/TestZipCodeWilmington.java new file mode 100644 index 00000000..428d6745 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestZipCodeWilmington.java @@ -0,0 +1,16 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestZipCodeWilmington { + + @Test + public void hostLectureByIdTest(){ + ZipCodeWilmington.getInstance().hostLecture(311412L, 100); + int expectedLecture = 50; + + Assert.assertEquals(expectedLecture, ((Student)(Students.getInstance().findById(212242L))).getTotalStudyTime(), 0.0); + Assert.assertEquals(expectedLecture, ((Student)(Students.getInstance().findById(121231L))).getTotalStudyTime(), 0.0); + } +} From 33a56febc5f542601d8f1bd5f3af3fbddde2a207 Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Thu, 14 Nov 2019 00:04:45 -0500 Subject: [PATCH 4/4] lab done --- .../java/io/zipcoder/interfaces/Educator.java | 25 ++++++++++ .../io/zipcoder/interfaces/TestEducator.java | 49 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 src/main/java/io/zipcoder/interfaces/Educator.java create mode 100644 src/test/java/io/zipcoder/interfaces/TestEducator.java diff --git a/src/main/java/io/zipcoder/interfaces/Educator.java b/src/main/java/io/zipcoder/interfaces/Educator.java new file mode 100644 index 00000000..921d5d56 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Educator.java @@ -0,0 +1,25 @@ +package io.zipcoder.interfaces; + +public enum Educator implements Teacher{ + DOLIO(new Instructor(311412L, "Dolio")), + ROBERTO(new Instructor(24302L, "Roberto")); + + final Instructor instructor; + Double timeWorked = 0.0; + + Educator(Instructor instructor){ + this.instructor = instructor; + } + + @Override + public void teach(Learner learner, double numberOfHours) { + this.instructor.teach(learner, numberOfHours); + this.timeWorked += numberOfHours; + } + + @Override + public void lecture(Learner[] learners, double numberOfHours) { + this.instructor.lecture(learners, numberOfHours); + this.timeWorked += numberOfHours; + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestEducator.java b/src/test/java/io/zipcoder/interfaces/TestEducator.java new file mode 100644 index 00000000..7544a257 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestEducator.java @@ -0,0 +1,49 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestEducator { + + @Test + public void implementationTest(){ + Assert.assertTrue(Educator.ROBERTO instanceof Teacher); + } + + @Test + public void lectureTest(){ + Student[] students = {new Student(1231L, "Bill Cosby"), new Student(3213L, "Joe")}; + + Double expected = 0.5 / students.length; + Educator.DOLIO.lecture(students, 0.5); + Assert.assertEquals(expected, students[0].getTotalStudyTime()); + Assert.assertEquals(expected, students[1].getTotalStudyTime()); + } + + @Test + public void teachTest(){ + Student student = new Student(1231L, "Bill Cosby"); + + Double expected = 0.5; + Educator.DOLIO.teach(student,expected); + Assert.assertEquals(expected, student.getTotalStudyTime()); + } + + @Test + public void lectureTimeWorkedTest(){ + Student[] students = {new Student(1231L, "Bill Cosby"), new Student(3213L, "Joe")}; + + Double expected = 1.0; + Educator.ROBERTO.lecture(students, 0.5); + Assert.assertEquals(expected, Educator.ROBERTO.timeWorked); + } + + @Test + public void teachTimeWorked(){ + Student[] students = {new Student(1231L, "Bill Cosby")}; + + Double expected = 0.5; + Educator.ROBERTO.lecture(students, 0.5); + Assert.assertEquals(expected, Educator.ROBERTO.timeWorked); + } +}