From e232f162971994fa2d39de11da73ae4147c253cc Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Tue, 12 Nov 2019 18:42:37 -0500 Subject: [PATCH 1/6] Half done --- .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 | 26 ++++ .../java/io/zipcoder/interfaces/Learner.java | 9 ++ .../java/io/zipcoder/interfaces/People.java | 63 ++++++++++ .../java/io/zipcoder/interfaces/Person.java | 21 ++++ .../java/io/zipcoder/interfaces/Student.java | 19 +++ .../java/io/zipcoder/interfaces/Students.java | 4 + .../java/io/zipcoder/interfaces/Teacher.java | 7 ++ .../zipcoder/interfaces/InstructorTest.java | 54 +++++++++ .../io/zipcoder/interfaces/PeopleTest.java | 112 ++++++++++++++++++ .../io/zipcoder/interfaces/StudentTest.java | 40 +++++++ .../io/zipcoder/interfaces/TestPerson.java | 30 +++++ 19 files changed, 476 insertions(+) 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/Students.java create mode 100644 src/main/java/io/zipcoder/interfaces/Teacher.java create mode 100644 src/test/java/io/zipcoder/interfaces/InstructorTest.java create mode 100644 src/test/java/io/zipcoder/interfaces/PeopleTest.java create mode 100644 src/test/java/io/zipcoder/interfaces/StudentTest.java 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..2545dc75 --- /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..1cce7d62 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructor.java @@ -0,0 +1,26 @@ +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 hoursPerStudent = numberOfHours / learners.length; + + for(Learner learner : learners) + learner.learn(hoursPerStudent); + + } + +} + 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..c7f06715 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Learner.java @@ -0,0 +1,9 @@ +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..98d2cb6e --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -0,0 +1,63 @@ +package io.zipcoder.interfaces; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class People implements Iterable{ + + List personList; + + public People(){ + + personList = new ArrayList(); + + } + + 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) { + personList.remove(findById(id)); + } + + public void removeAll(){ + + personList.clear(); + } + + public int count(){ + + return personList.size(); + } + + public Person[] toArray(){ + + return personList.toArray(new Person[0]); + } + + public Iterator iterator() { + return personList.iterator(); + } +} diff --git a/src/main/java/io/zipcoder/interfaces/Person.java b/src/main/java/io/zipcoder/interfaces/Person.java index fc6a3ffe..4291254b 100644 --- a/src/main/java/io/zipcoder/interfaces/Person.java +++ b/src/main/java/io/zipcoder/interfaces/Person.java @@ -2,4 +2,25 @@ public class Person { + private final Long id; + private String name; + + public Person(Long id, String name) { + this.id = id; + this.name = name; + } + + public Long getId() { + return id; + } + + public String getName() { + return 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..32b7ff7e --- /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/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java new file mode 100644 index 00000000..cae00418 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public class Students unextendable People { +} 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..08909368 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Teacher.java @@ -0,0 +1,7 @@ +package io.zipcoder.interfaces; + +public interface Teacher { + + void teach(Learner learner, double numberOfHours); + void lecture(Learner[] learners, double numberOfHours); +} diff --git a/src/test/java/io/zipcoder/interfaces/InstructorTest.java b/src/test/java/io/zipcoder/interfaces/InstructorTest.java new file mode 100644 index 00000000..7f237b21 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/InstructorTest.java @@ -0,0 +1,54 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class InstructorTest { + + @Test + public void implementationTest(){ + Instructor newInstructor = new Instructor(76L, "Sam"); + + Assert.assertTrue(newInstructor instanceof Teacher); + } + + @Test + public void inheritanceTest(){ + Instructor newInstructor = new Instructor(76L, "Sammy"); + + Assert.assertTrue(newInstructor instanceof Person); + } + + @Test + public void teachTest(){ + Instructor newInstructor = new Instructor(76L, "Sammy"); + Student newStudent = new Student(7L, "Dan"); + double expected = 500.0; + + newInstructor.teach(newStudent, expected); + + double actual = newStudent.getTotalStudyTime(); + + Assert.assertEquals(expected, actual, 0); + } + + @Test + public void lectureTest(){ + Instructor newInstructor = new Instructor(76L, "Sammy"); + Student newStudent1 = new Student(7L, "Dan"); + Student newStudent2 = new Student(8L, "Jack"); + Student newStudent3 = new Student(9L, "Bill"); + + Learner[] students = {newStudent1, newStudent2, newStudent3}; + + newInstructor.lecture(students, 60.0); + + double expected = 20.0; + double actual = newStudent3.getTotalStudyTime(); + + Assert.assertEquals(expected, actual, 0); + } + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/interfaces/PeopleTest.java b/src/test/java/io/zipcoder/interfaces/PeopleTest.java new file mode 100644 index 00000000..69af9b8a --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/PeopleTest.java @@ -0,0 +1,112 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class PeopleTest { + + @Test + public void addTest(){ + People newPeople = new People(); + Person newPerson = new Person(98L, "Sam"); + + newPeople.add(newPerson); + + int expected = 1; + int actual = newPeople.count(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void removeTest(){ + People newPeople = new People(); + Person newPerson = new Person(98L, "Sam"); + Person newPerson2 = new Person(34L, "Mike"); + Person newPerson3 = new Person(10L, "Julia"); + + newPeople.add(newPerson); + newPeople.add(newPerson2); + newPeople.add(newPerson3); + + newPeople.removeByPerson(newPerson2); + + int expected = 2; + int actual = newPeople.count(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void removeByIdTest(){ + People newPeople = new People(); + Person newPerson = new Person(98L, "Sam"); + Person newPerson2 = new Person(34L, "Mike"); + Person newPerson3 = new Person(10L, "Julia"); + + newPeople.add(newPerson); + newPeople.add(newPerson2); + newPeople.add(newPerson3); + + newPeople.removeById(10L); + + Assert.assertFalse(newPeople.contains(newPerson3)); + } + + @Test + public void RemoveAllTest() { + + People newPeople = new People(); + Person newPerson = new Person(98L, "Sam"); + Person newPerson2 = new Person(34L, "Mike"); + Person newPerson3 = new Person(10L, "Julia"); + + newPeople.add(newPerson); + newPeople.add(newPerson2); + newPeople.add(newPerson3); + + newPeople.removeAll(); + + int actual = newPeople.count(); + + Assert.assertEquals(0, actual); + } + + @Test + public void findByIdTest(){ + + People newPeople = new People(); + Person newPerson = new Person(98L, "Sam"); + Person newPerson2 = new Person(34L, "Mike"); + Person newPerson3 = new Person(10L, "Julia"); + + newPeople.add(newPerson); + newPeople.add(newPerson2); + newPeople.add(newPerson3); + + Person actual = newPeople.findById(34L); + + Assert.assertEquals(newPerson2, actual); + } + + @Test + public void toArrayTest(){ + + People newPeople = new People(); + Person newPerson = new Person(98L, "Sam"); + Person newPerson2 = new Person(34L, "Mike"); + Person newPerson3 = new Person(10L, "Julia"); + + newPeople.add(newPerson); + newPeople.add(newPerson2); + newPeople.add(newPerson3); + + Person[] newArray = newPeople.toArray(); + Person actual = newArray[2]; + + Assert.assertEquals(newPerson3, actual); + } + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/interfaces/StudentTest.java b/src/test/java/io/zipcoder/interfaces/StudentTest.java new file mode 100644 index 00000000..031b481a --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/StudentTest.java @@ -0,0 +1,40 @@ +package io.zipcoder.interfaces; + + +import org.junit.Assert; +import org.junit.Test; + +public class StudentTest { + + @Test + public void implementationTest(){ + + Student newStudent = new Student(10L, "Thing One"); + + Assert.assertTrue(newStudent instanceof Learner); + } + + @Test + public void inheritanceTest(){ + + Student newStudent = new Student(10L, "Thing Two"); + + Assert.assertTrue(newStudent instanceof Person); + } + + @Test + public void learnTest(){ + + Student newStudent = new Student(80L, "Pam"); + + double expected = 90.0; + newStudent.learn(expected); + + double actual = newStudent.getTotalStudyTime(); + + Assert.assertEquals(expected, actual, 0); + } + + + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/interfaces/TestPerson.java b/src/test/java/io/zipcoder/interfaces/TestPerson.java index d64cd2f0..91bdcebb 100644 --- a/src/test/java/io/zipcoder/interfaces/TestPerson.java +++ b/src/test/java/io/zipcoder/interfaces/TestPerson.java @@ -1,5 +1,35 @@ package io.zipcoder.interfaces; +import org.junit.Assert; +import org.junit.Test; + public class TestPerson { + @Test + public void constructorTest(){ + Long expectedId = 90L; + String expectedName = "Sandy"; + Person newPerson = new Person(expectedId, expectedName); + + Long actualId = newPerson.getId(); + String actualName = newPerson.getName(); + + Assert.assertEquals(expectedId, actualId); + Assert.assertEquals(expectedName, actualName); + + } + + @Test + public void setNameTest(){ + Person newPerson = new Person(10L, ""); + String expected = "Sandy"; + + newPerson.setName(expected); + String actual = newPerson.getName(); + + Assert.assertEquals(expected, actual); + + } + + } From 400444316cd9b778c346418d2e2e3e01f74d5771 Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Tue, 12 Nov 2019 18:43:52 -0500 Subject: [PATCH 2/6] fixed --- .gitignore | 1 + src/main/java/io/zipcoder/interfaces/Students.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c9bfc295..6d928738 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .classpath #.project .settings +*.idea/ diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index cae00418..d9f09c7d 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -1,4 +1,4 @@ package io.zipcoder.interfaces; -public class Students unextendable People { +public class Students{ } From 8f9d2edbf7e0962e581747b2a1855657097a023a Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Tue, 12 Nov 2019 18:53:32 -0500 Subject: [PATCH 3/6] singleton? --- src/main/java/io/zipcoder/interfaces/Students.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index d9f09c7d..a67e7152 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -1,4 +1,11 @@ package io.zipcoder.interfaces; -public class Students{ +final class Students{ + + final static Students INSTANCE = null; + + private Students(){ + + + } } From 95c287b845fb15d37984320f8f2826a753f64a5f Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Thu, 14 Nov 2019 12:33:03 -0500 Subject: [PATCH 4/6] some classes and tests done --- .../io/zipcoder/interfaces/Instructors.java | 23 ++++++++++ .../java/io/zipcoder/interfaces/Students.java | 13 +++++- .../interfaces/ZipCodeWilmington.java | 42 +++++++++++++++++++ .../zipcoder/interfaces/InstructorsTest.java | 40 ++++++++++++++++++ .../io/zipcoder/interfaces/StudentsTest.java | 40 ++++++++++++++++++ .../interfaces/ZipCodeWilmingtonTest.java | 20 +++++++++ 6 files changed, 176 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/zipcoder/interfaces/Instructors.java create mode 100644 src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java create mode 100644 src/test/java/io/zipcoder/interfaces/InstructorsTest.java create mode 100644 src/test/java/io/zipcoder/interfaces/StudentsTest.java create mode 100644 src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.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..586c5e9e --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -0,0 +1,23 @@ +package io.zipcoder.interfaces; + +public final class Instructors extends People { + + private static final Instructors INSTANCE = new Instructors(); + + private Instructors(){ + + Instructor newInstructor1 = new Instructor(100L, "Rick"); + Instructor newInstructor2 = new Instructor(110L, "Dana"); + Instructor newInstructor3 = new Instructor(120L, "John"); + + personList.add(newInstructor1); + personList.add(newInstructor2); + personList.add(newInstructor3); + + } + + public static Instructors getInstance(){ + return INSTANCE; + } +} + diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index a67e7152..676c5144 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -1,11 +1,20 @@ package io.zipcoder.interfaces; -final class Students{ +public final class Students extends People{ - final static Students INSTANCE = null; + private static final Students INSTANCE = new Students(); private Students(){ + Student newStudent1 = new Student(10L, "Sam"); + Student newStudent2 = new Student(20L, "Dan"); + personList.add(newStudent1); + personList.add(newStudent2); + + } + + 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..71e5c1e4 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -0,0 +1,42 @@ +package io.zipcoder.interfaces; + +import java.util.HashMap; +import java.util.Map; + +public class ZipCodeWilmington { + + Students students = Students.getInstance(); + Instructors instructors = Instructors.getInstance(); + Map studyMap; + + public ZipCodeWilmington() { + + } + + public void hostLecture(Teacher teacher, double numberOfHours) { + + teacher.lecture((Learner[]) students.toArray(), numberOfHours); + + } + + public void hostLecture(Long id, double numberOfHours) { + + Teacher teacher = (Teacher) instructors.findById(id); + + teacher.lecture((Learner[]) students.toArray(), numberOfHours); + + } + + public void getStudyMap() { + + studyMap = new HashMap(); + + for (Person person : students) { + Student student = (Student) person; + + studyMap.put(student, student.getTotalStudyTime()); + } + + } + +} diff --git a/src/test/java/io/zipcoder/interfaces/InstructorsTest.java b/src/test/java/io/zipcoder/interfaces/InstructorsTest.java new file mode 100644 index 00000000..bf58e595 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/InstructorsTest.java @@ -0,0 +1,40 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class InstructorsTest { + + @Test + public void getInstanceTest() { + + Instructors test = Instructors.getInstance(); + + int actual = test.personList.size(); + + Assert.assertEquals(3, actual); + } + + @Test + public void getInstance2Test() { + + Instructors test = Instructors.getInstance(); + + boolean person1 = false; + boolean person2 = false; + + for(Person person : test.personList) { + if (person.getId().equals(100L) && person.getName().equals("Rick")) + person1 = true; + if(person.getId().equals(120L) && person.getName().equals("John")) + person2 = true; + } + + Assert.assertTrue(person1); + Assert.assertTrue(person2); + + } + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/interfaces/StudentsTest.java b/src/test/java/io/zipcoder/interfaces/StudentsTest.java new file mode 100644 index 00000000..c04a81f8 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/StudentsTest.java @@ -0,0 +1,40 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class StudentsTest { + + @Test + public void getInstanceTest() { + + Students test = Students.getInstance(); + + int actual = test.personList.size(); + + Assert.assertEquals(2, actual); + } + + @Test + public void getInstance2Test() { + + Students test = Students.getInstance(); + + boolean person1 = false; + boolean person2 = false; + + for(Person person : test.personList) { + if (person.getId().equals(10L) && person.getName().equals("Sam")) + person1 = true; + if(person.getId().equals(20L) && person.getName().equals("Dan")) + person2 = true; + } + + Assert.assertTrue(person1); + Assert.assertTrue(person2); + + } + +} diff --git a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java new file mode 100644 index 00000000..b03b0716 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java @@ -0,0 +1,20 @@ +package io.zipcoder.interfaces; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class ZipCodeWilmingtonTest { + + @Test + public void hostLecture() { + } + + @Test + public void hostLecture1() { + } + + @Test + public void getStudyMap() { + } +} \ No newline at end of file From 37f2bc03ce65e49159c0798e6a98665c93086656 Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Thu, 14 Nov 2019 19:42:32 -0500 Subject: [PATCH 5/6] lab done --- .../java/io/zipcoder/interfaces/Educator.java | 34 ++++++++++ .../io/zipcoder/interfaces/Instructors.java | 14 ++-- .../java/io/zipcoder/interfaces/People.java | 19 +++--- .../io/zipcoder/interfaces/PeopleClass.java | 9 +++ .../java/io/zipcoder/interfaces/Students.java | 11 ++- .../interfaces/ZipCodeWilmington.java | 26 ++++--- .../io/zipcoder/interfaces/EducatorTest.java | 68 +++++++++++++++++++ .../io/zipcoder/interfaces/PeopleTest.java | 28 ++------ .../interfaces/ZipCodeWilmingtonTest.java | 40 ++++++++++- 9 files changed, 197 insertions(+), 52 deletions(-) create mode 100644 src/main/java/io/zipcoder/interfaces/Educator.java create mode 100644 src/main/java/io/zipcoder/interfaces/PeopleClass.java create mode 100644 src/test/java/io/zipcoder/interfaces/EducatorTest.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..dfbfadd1 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Educator.java @@ -0,0 +1,34 @@ +package io.zipcoder.interfaces; + +public enum Educator implements Teacher { + SAM, + NICK, + FRANK; + + private final Instructor instructor; + private Double timeWorked = 0.0; + + Educator() { + + this.instructor = new Instructor((long) ordinal(), name()); + + } + + + public Double timeWorked() { + + return timeWorked; + } + + public void teach(Learner learner, double numberOfHours) { + + timeWorked += numberOfHours; + this.instructor.teach(learner, numberOfHours); + } + + public void lecture(Learner[] learners, double numberOfHours) { + + timeWorked += numberOfHours; + this.instructor.lecture(learners, numberOfHours); + } +} diff --git a/src/main/java/io/zipcoder/interfaces/Instructors.java b/src/main/java/io/zipcoder/interfaces/Instructors.java index 586c5e9e..481b7db6 100644 --- a/src/main/java/io/zipcoder/interfaces/Instructors.java +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -1,6 +1,6 @@ package io.zipcoder.interfaces; -public final class Instructors extends People { +public final class Instructors extends People{ private static final Instructors INSTANCE = new Instructors(); @@ -10,14 +10,20 @@ private Instructors(){ Instructor newInstructor2 = new Instructor(110L, "Dana"); Instructor newInstructor3 = new Instructor(120L, "John"); - personList.add(newInstructor1); - personList.add(newInstructor2); - personList.add(newInstructor3); + super.add(newInstructor1); + super.add(newInstructor2); + super.add(newInstructor3); } + public Instructor[] getArray() { + return super.personList.toArray(new Instructor[0]); + } + 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 98d2cb6e..a2eb2c2a 100644 --- a/src/main/java/io/zipcoder/interfaces/People.java +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -4,24 +4,24 @@ import java.util.Iterator; import java.util.List; -public class People implements Iterable{ +public 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){ + public E findById(long id){ - for(Person person : personList) + for(E person : personList) if(person.getId() == id) return person; @@ -52,12 +52,9 @@ public int count(){ return personList.size(); } - public Person[] toArray(){ + public abstract E[] getArray(); - return personList.toArray(new Person[0]); - } - - public Iterator iterator() { + public Iterator iterator() { return personList.iterator(); } } diff --git a/src/main/java/io/zipcoder/interfaces/PeopleClass.java b/src/main/java/io/zipcoder/interfaces/PeopleClass.java new file mode 100644 index 00000000..1e9b41e6 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/PeopleClass.java @@ -0,0 +1,9 @@ +package io.zipcoder.interfaces; + +public class PeopleClass extends People{ + + public Person[] getArray() { + return personList.toArray(new Person[0]); + + } +} diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index 676c5144..c586b9ef 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(); @@ -9,12 +9,17 @@ private Students(){ Student newStudent1 = new Student(10L, "Sam"); Student newStudent2 = new Student(20L, "Dan"); - personList.add(newStudent1); - personList.add(newStudent2); + super.add(newStudent1); + super.add(newStudent2); } + public Student[] getArray() { + return super.personList.toArray(new Student[0]); + } + 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 71e5c1e4..d6021c3a 100644 --- a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -3,7 +3,9 @@ import java.util.HashMap; import java.util.Map; -public class ZipCodeWilmington { +public final class ZipCodeWilmington { + + private static final ZipCodeWilmington INSTANCE = new ZipCodeWilmington(); Students students = Students.getInstance(); Instructors instructors = Instructors.getInstance(); @@ -11,32 +13,38 @@ public class ZipCodeWilmington { public ZipCodeWilmington() { + studyMap = new HashMap(); + } public void hostLecture(Teacher teacher, double numberOfHours) { - teacher.lecture((Learner[]) students.toArray(), numberOfHours); + teacher.lecture(students.getArray(), numberOfHours); } public void hostLecture(Long id, double numberOfHours) { - Teacher teacher = (Teacher) instructors.findById(id); + Teacher teacher = instructors.findById(id); - teacher.lecture((Learner[]) students.toArray(), numberOfHours); + teacher.lecture(students.getArray(), numberOfHours); } - public void getStudyMap() { - - studyMap = new HashMap(); + public Map getStudyMap() { - for (Person person : students) { - Student student = (Student) person; + for (Student student : students) { studyMap.put(student, student.getTotalStudyTime()); } + return studyMap; + } + + + public static ZipCodeWilmington getInstance(){ + + return INSTANCE; } } diff --git a/src/test/java/io/zipcoder/interfaces/EducatorTest.java b/src/test/java/io/zipcoder/interfaces/EducatorTest.java new file mode 100644 index 00000000..fdd3bd32 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/EducatorTest.java @@ -0,0 +1,68 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class EducatorTest { + + @Test + public void implementationTest(){ + Educator newEducator = Educator.FRANK; + + Assert.assertTrue(newEducator instanceof Teacher); + } + + @Test + public void getNumberOfHoursTaught() { + Educator educator = Educator.FRANK; + Student newStudent = new Student(7L, "Dan"); + + double expected = 10.0; + + educator.teach(newStudent, expected); + + double actual = educator.timeWorked(); + + Assert.assertEquals(expected, actual, 0); + + } + + @Test + public void teach() { + Educator educator = Educator.NICK; + Student newStudent = new Student(7L, "Dan"); + + double expected = 500.0; + + educator.teach(newStudent, expected); + + double actual = newStudent.getTotalStudyTime(); + + Assert.assertEquals(expected, actual, 0); + } + + @Test + public void lecture() { + Educator educator = Educator.SAM; + Student newStudent1 = new Student(7L, "Dan"); + Student newStudent2 = new Student(8L, "Jack"); + Student newStudent3 = new Student(9L, "Bill"); + + Learner[] students = {newStudent1, newStudent2, newStudent3}; + + educator.lecture(students, 60.0); + + double expected = 20.0; + double actual = newStudent3.getTotalStudyTime(); + + Assert.assertEquals(expected, actual, 0); + //------------------------------ + + double expected2 = 60.0; + double actual2 = educator.timeWorked(); + + Assert.assertEquals(expected2, actual2, 0); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/interfaces/PeopleTest.java b/src/test/java/io/zipcoder/interfaces/PeopleTest.java index 69af9b8a..bb4cbac3 100644 --- a/src/test/java/io/zipcoder/interfaces/PeopleTest.java +++ b/src/test/java/io/zipcoder/interfaces/PeopleTest.java @@ -9,7 +9,7 @@ public class PeopleTest { @Test public void addTest(){ - People newPeople = new People(); + People newPeople = new PeopleClass(); Person newPerson = new Person(98L, "Sam"); newPeople.add(newPerson); @@ -22,7 +22,7 @@ public void addTest(){ @Test public void removeTest(){ - People newPeople = new People(); + People newPeople = new PeopleClass(); Person newPerson = new Person(98L, "Sam"); Person newPerson2 = new Person(34L, "Mike"); Person newPerson3 = new Person(10L, "Julia"); @@ -41,7 +41,7 @@ public void removeTest(){ @Test public void removeByIdTest(){ - People newPeople = new People(); + People newPeople = new PeopleClass(); Person newPerson = new Person(98L, "Sam"); Person newPerson2 = new Person(34L, "Mike"); Person newPerson3 = new Person(10L, "Julia"); @@ -58,7 +58,7 @@ public void removeByIdTest(){ @Test public void RemoveAllTest() { - People newPeople = new People(); + People newPeople = new PeopleClass(); Person newPerson = new Person(98L, "Sam"); Person newPerson2 = new Person(34L, "Mike"); Person newPerson3 = new Person(10L, "Julia"); @@ -77,7 +77,7 @@ public void RemoveAllTest() { @Test public void findByIdTest(){ - People newPeople = new People(); + People newPeople = new PeopleClass(); Person newPerson = new Person(98L, "Sam"); Person newPerson2 = new Person(34L, "Mike"); Person newPerson3 = new Person(10L, "Julia"); @@ -91,22 +91,4 @@ public void findByIdTest(){ Assert.assertEquals(newPerson2, actual); } - @Test - public void toArrayTest(){ - - People newPeople = new People(); - Person newPerson = new Person(98L, "Sam"); - Person newPerson2 = new Person(34L, "Mike"); - Person newPerson3 = new Person(10L, "Julia"); - - newPeople.add(newPerson); - newPeople.add(newPerson2); - newPeople.add(newPerson3); - - Person[] newArray = newPeople.toArray(); - Person actual = newArray[2]; - - Assert.assertEquals(newPerson3, actual); - } - } \ No newline at end of file diff --git a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java index b03b0716..8d6543c5 100644 --- a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java +++ b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java @@ -1,20 +1,56 @@ package io.zipcoder.interfaces; +import org.junit.Assert; import org.junit.Test; +import java.sql.SQLOutput; +import java.util.HashMap; +import java.util.Map; + import static org.junit.Assert.*; public class ZipCodeWilmingtonTest { + ZipCodeWilmington zipCode = ZipCodeWilmington.getInstance(); + Students students = Students.getInstance(); + Educator educator; + @Test - public void hostLecture() { + public void hostLecture1() { + + zipCode.hostLecture(100L, 20.0); + + Student student = students.getArray()[0]; + + double expected = 20.0; + double actual = student.getTotalStudyTime(); + + Assert.assertEquals(expected, actual, 0); + } @Test - public void hostLecture1() { + public void hostLecture2() { + + educator = Educator.SAM; + Student student = students.getArray()[0]; + + zipCode.hostLecture(educator, 20.0); + + double expected = 30.0; + double actual = student.getTotalStudyTime(); + + Assert.assertEquals(expected, actual, 0); + } @Test public void getStudyMap() { + + educator = Educator.SAM; + zipCode.hostLecture(educator, 20.0); + + System.out.println(zipCode.getStudyMap().toString()); + } } \ No newline at end of file From 300ac328a8f86c8d48ddefd1c9f726edc566547b Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Fri, 15 Nov 2019 12:58:46 -0500 Subject: [PATCH 6/6] fixes --- .../java/io/zipcoder/interfaces/Educator.java | 3 ++- .../interfaces/ZipCodeWilmingtonTest.java | 16 +++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/zipcoder/interfaces/Educator.java b/src/main/java/io/zipcoder/interfaces/Educator.java index dfbfadd1..844971cc 100644 --- a/src/main/java/io/zipcoder/interfaces/Educator.java +++ b/src/main/java/io/zipcoder/interfaces/Educator.java @@ -3,7 +3,8 @@ public enum Educator implements Teacher { SAM, NICK, - FRANK; + FRANK, + CHRIS; private final Instructor instructor; private Double timeWorked = 0.0; diff --git a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java index 8d6543c5..0bd3dcc5 100644 --- a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java +++ b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java @@ -1,6 +1,7 @@ package io.zipcoder.interfaces; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import java.sql.SQLOutput; @@ -15,10 +16,12 @@ public class ZipCodeWilmingtonTest { Students students = Students.getInstance(); Educator educator; + @Test public void hostLecture1() { - zipCode.hostLecture(100L, 20.0); + educator = Educator.CHRIS; + zipCode.hostLecture(educator, 20.0); Student student = students.getArray()[0]; @@ -26,24 +29,23 @@ public void hostLecture1() { double actual = student.getTotalStudyTime(); Assert.assertEquals(expected, actual, 0); - } @Test - public void hostLecture2() { + public void hostLecture2(){ - educator = Educator.SAM; - Student student = students.getArray()[0]; + zipCode.hostLecture(100L, 20.0); - zipCode.hostLecture(educator, 20.0); + Student student = students.getArray()[0]; double expected = 30.0; double actual = student.getTotalStudyTime(); Assert.assertEquals(expected, actual, 0); - } + + @Test public void getStudyMap() {