From b2bed792a441c09927058c56441db0682271701c Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Wed, 13 Nov 2019 08:34:19 -0500 Subject: [PATCH 01/18] Update gitignore --- .gitignore | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c9bfc295..3b60d3fa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,23 @@ /target/ .DS_Store .classpath -#.project +.project .settings + + +# User-specific stuff: +*.iml +.idea/** +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + From bb2a312c33599a8af5472be177858ce9f2c0a19f Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Wed, 13 Nov 2019 08:55:44 -0500 Subject: [PATCH 02/18] Created classes --- src/main/java/interfaces/Learner.java | 4 ++++ src/main/java/interfaces/Teacher.java | 4 ++++ src/main/java/io/zipcoder/interfaces/Educator.java | 4 ++++ src/main/java/io/zipcoder/interfaces/Instructor.java | 4 ++++ src/main/java/io/zipcoder/interfaces/Instructors.java | 4 ++++ src/main/java/io/zipcoder/interfaces/People.java | 4 ++++ src/main/java/io/zipcoder/interfaces/Student.java | 4 ++++ src/main/java/io/zipcoder/interfaces/Students.java | 4 ++++ src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java | 4 ++++ 9 files changed, 36 insertions(+) create mode 100644 src/main/java/interfaces/Learner.java create mode 100644 src/main/java/interfaces/Teacher.java create mode 100644 src/main/java/io/zipcoder/interfaces/Educator.java create mode 100644 src/main/java/io/zipcoder/interfaces/Instructor.java create mode 100644 src/main/java/io/zipcoder/interfaces/Instructors.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/ZipCodeWilmington.java diff --git a/src/main/java/interfaces/Learner.java b/src/main/java/interfaces/Learner.java new file mode 100644 index 00000000..068ee7f7 --- /dev/null +++ b/src/main/java/interfaces/Learner.java @@ -0,0 +1,4 @@ +package interfaces; + +public interface Learner { +} diff --git a/src/main/java/interfaces/Teacher.java b/src/main/java/interfaces/Teacher.java new file mode 100644 index 00000000..28baea3b --- /dev/null +++ b/src/main/java/interfaces/Teacher.java @@ -0,0 +1,4 @@ +package interfaces; + +public interface Teacher { +} 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..64068796 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Educator.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public enum Educator { +} 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..d2ba462e --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructor.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public class Instructor { +} 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..2e0acc8d --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public class Instructors { +} 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..3b164ce8 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public class People { +} 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..6bb4cc41 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Student.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public class Student { +} 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..f80ca13a --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -0,0 +1,4 @@ +package io.zipcoder.interfaces; + +public class Students { +} 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 { +} From 9b42012d37539b88c255e62eb8592998ab9c3cef Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Wed, 13 Nov 2019 11:34:01 -0500 Subject: [PATCH 03/18] Add tests for person class --- .../java/io/zipcoder/interfaces/Person.java | 19 ++++++++ .../io/zipcoder/interfaces/PersonTest.java | 46 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/test/java/io/zipcoder/interfaces/PersonTest.java diff --git a/src/main/java/io/zipcoder/interfaces/Person.java b/src/main/java/io/zipcoder/interfaces/Person.java index fc6a3ffe..6a9ace2c 100644 --- a/src/main/java/io/zipcoder/interfaces/Person.java +++ b/src/main/java/io/zipcoder/interfaces/Person.java @@ -2,4 +2,23 @@ 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 this.id; + } + + public String getName(){ + return this.name; + } + + public void setName(String name){ + this.name = name; + } } diff --git a/src/test/java/io/zipcoder/interfaces/PersonTest.java b/src/test/java/io/zipcoder/interfaces/PersonTest.java new file mode 100644 index 00000000..c9c36e1a --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/PersonTest.java @@ -0,0 +1,46 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class PersonTest { + + Person testPerson; + + + @Test + public void getId() { + Long expected = 32L; + String name = "Joe"; + testPerson = new Person(expected,name); + + Long actual = testPerson.getId(); + + Assert.assertEquals(expected,actual); + } + + @Test + public void getName() { + Long id = 32L; + String expected = "Joe"; + testPerson = new Person(id,expected); + + String actual = testPerson.getName(); + + Assert.assertEquals(expected,actual); + } + + @Test + public void setName() { + Long id = 32L; + String expected = "Joe"; + testPerson = new Person(id,""); + + testPerson.setName("Joe"); + String actual = testPerson.getName(); + + Assert.assertEquals(expected,actual); + } +} \ No newline at end of file From fe0b6e7fecd4ee474ce8a5c65166a52115207d2f Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Wed, 13 Nov 2019 11:35:11 -0500 Subject: [PATCH 04/18] deleted default test class --- src/test/java/io/zipcoder/interfaces/TestPerson.java | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 src/test/java/io/zipcoder/interfaces/TestPerson.java diff --git a/src/test/java/io/zipcoder/interfaces/TestPerson.java b/src/test/java/io/zipcoder/interfaces/TestPerson.java deleted file mode 100644 index d64cd2f0..00000000 --- a/src/test/java/io/zipcoder/interfaces/TestPerson.java +++ /dev/null @@ -1,5 +0,0 @@ -package io.zipcoder.interfaces; - -public class TestPerson { - -} From d21f8f579a51509befd543e882a1d7d6736a31d9 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 12:22:28 -0500 Subject: [PATCH 05/18] Add tests for student class --- src/main/java/interfaces/Learner.java | 3 ++ src/main/java/interfaces/Teacher.java | 4 +++ .../java/io/zipcoder/interfaces/Person.java | 1 + .../java/io/zipcoder/interfaces/Student.java | 25 ++++++++++++- .../io/zipcoder/interfaces/PersonTest.java | 1 + .../io/zipcoder/interfaces/StudentTest.java | 35 +++++++++++++++++++ 6 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 src/test/java/io/zipcoder/interfaces/StudentTest.java diff --git a/src/main/java/interfaces/Learner.java b/src/main/java/interfaces/Learner.java index 068ee7f7..32c7d382 100644 --- a/src/main/java/interfaces/Learner.java +++ b/src/main/java/interfaces/Learner.java @@ -1,4 +1,7 @@ package interfaces; public interface Learner { + + void learn(double numberOfHours); + Double getTotalStudyTime(); } diff --git a/src/main/java/interfaces/Teacher.java b/src/main/java/interfaces/Teacher.java index 28baea3b..04b40951 100644 --- a/src/main/java/interfaces/Teacher.java +++ b/src/main/java/interfaces/Teacher.java @@ -1,4 +1,8 @@ package interfaces; public interface Teacher { + + void teach (Learner learner, double numberOfHours); + void lecture (Learner[] learners, double numberOfHours); + } diff --git a/src/main/java/io/zipcoder/interfaces/Person.java b/src/main/java/io/zipcoder/interfaces/Person.java index 6a9ace2c..9d48632a 100644 --- a/src/main/java/io/zipcoder/interfaces/Person.java +++ b/src/main/java/io/zipcoder/interfaces/Person.java @@ -22,3 +22,4 @@ 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 index 6bb4cc41..f558ff89 100644 --- a/src/main/java/io/zipcoder/interfaces/Student.java +++ b/src/main/java/io/zipcoder/interfaces/Student.java @@ -1,4 +1,27 @@ package io.zipcoder.interfaces; -public class Student { +import interfaces.Learner; + +public class Student extends Person implements Learner { + + double totalStudyTime; + +//----------- constructor -------------------- + public Student(Long id, String name) { + super(id, name); + } + +//-------------------------------------------- + + + +//---------- interfaces ----------------------- + public void learn(double numberOfHours) { + this.totalStudyTime += numberOfHours; + } + + + public Double getTotalStudyTime() { + return this.totalStudyTime; + } } diff --git a/src/test/java/io/zipcoder/interfaces/PersonTest.java b/src/test/java/io/zipcoder/interfaces/PersonTest.java index c9c36e1a..d7c06929 100644 --- a/src/test/java/io/zipcoder/interfaces/PersonTest.java +++ b/src/test/java/io/zipcoder/interfaces/PersonTest.java @@ -10,6 +10,7 @@ public class PersonTest { Person testPerson; + @Test public void getId() { Long expected = 32L; 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..55a61d96 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/StudentTest.java @@ -0,0 +1,35 @@ +package io.zipcoder.interfaces; + +import interfaces.Learner; +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class StudentTest { + Student testStudent; + + @Test + public void testLearn() { + testStudent = new Student(34L,"Joe"); + + testStudent.learn(25d); + + double expected = 25.0; + double actual = testStudent.getTotalStudyTime(); + + Assert.assertEquals(expected,actual,0.0); + } + + @Test + public void testImplementation(){ + testStudent = new Student(34L, "Jack"); + Assert.assertTrue(testStudent instanceof Learner); + } + + @Test + public void testInheritance(){ + testStudent = new Student(34L, "Jack"); + Assert.assertTrue(testStudent instanceof Person); + } +} \ No newline at end of file From 18f49893304511dc8be789119af2684b727b3f9c Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 12:29:05 -0500 Subject: [PATCH 06/18] Add logic to instructor --- .../io/zipcoder/interfaces/Instructor.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/interfaces/Instructor.java b/src/main/java/io/zipcoder/interfaces/Instructor.java index d2ba462e..e0feff6e 100644 --- a/src/main/java/io/zipcoder/interfaces/Instructor.java +++ b/src/main/java/io/zipcoder/interfaces/Instructor.java @@ -1,4 +1,28 @@ package io.zipcoder.interfaces; -public class Instructor { +import interfaces.Learner; +import interfaces.Teacher; + +public class Instructor extends Person implements Teacher { + + +//----------- constructor --------------------------- + public Instructor(Long id, String name) { + super(id, name); + } + + +//----------- interfaces --------------------------- + + public void teach(Learner learner, double numberOfHours) { + learner.learn(numberOfHours); + } + + public void lecture(Learner[] learners, double numberOfHours) { + double numberOfHoursPerLearner = numberOfHours / learners.length; + + for(Learner eachLearner : learners){ + eachLearner.learn(numberOfHoursPerLearner); + } + } } From 3d884924700af9e3de965f5b55b3d9c50da7a58a Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 12:32:39 -0500 Subject: [PATCH 07/18] Add test for inheritance/implementation --- .../zipcoder/interfaces/InstructorTest.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/test/java/io/zipcoder/interfaces/InstructorTest.java 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..114e7c81 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/InstructorTest.java @@ -0,0 +1,33 @@ +package io.zipcoder.interfaces; + +import interfaces.Teacher; +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class InstructorTest { + Instructor testInstructor; + + @Test + public void testImplementation(){ + testInstructor = new Instructor(32L,"John"); + + Assert.assertTrue(testInstructor instanceof Teacher); + } + + @Test + public void testInheritance(){ + testInstructor = new Instructor(32L,"John"); + + Assert.assertTrue(testInstructor instanceof Person); + } + + @Test + public void teach() { + } + + @Test + public void lecture() { + } +} \ No newline at end of file From ca28b215c371d96ec2309a6232382dead4c55d09 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 12:35:25 -0500 Subject: [PATCH 08/18] Add test for teach --- src/test/java/io/zipcoder/interfaces/InstructorTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/io/zipcoder/interfaces/InstructorTest.java b/src/test/java/io/zipcoder/interfaces/InstructorTest.java index 114e7c81..61298588 100644 --- a/src/test/java/io/zipcoder/interfaces/InstructorTest.java +++ b/src/test/java/io/zipcoder/interfaces/InstructorTest.java @@ -25,6 +25,15 @@ public void testInheritance(){ @Test public void teach() { + testInstructor = new Instructor(32L,"John"); + Student testStudent = new Student(44L,"Joe"); + + testInstructor.teach(testStudent,24); + + double expected = 24; + double actual = testStudent.getTotalStudyTime(); + + Assert.assertEquals(expected,actual,0.0); } @Test From eecc3f8ba30095d6fec8397431244b5a801b2e66 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 13:24:29 -0500 Subject: [PATCH 09/18] Add test for teach/lecture instructor --- .../io/zipcoder/interfaces/InstructorTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/test/java/io/zipcoder/interfaces/InstructorTest.java b/src/test/java/io/zipcoder/interfaces/InstructorTest.java index 61298588..924d8a13 100644 --- a/src/test/java/io/zipcoder/interfaces/InstructorTest.java +++ b/src/test/java/io/zipcoder/interfaces/InstructorTest.java @@ -38,5 +38,19 @@ public void teach() { @Test public void lecture() { + testInstructor = new Instructor(32L,"John"); + Student student1 = new Student(44L,"Joe"); + Student student2 = new Student(43L,"Sam"); + Student student3 = new Student(41L,"Jack"); + + Student[] students = {student1,student2,student3}; + + testInstructor.lecture(students,9); + + double expected = 3; + double actual = student1.getTotalStudyTime(); + + Assert.assertEquals(expected,actual,0.0); + } } \ No newline at end of file From d9195e4536cd09b55e28f511ba78a34fb17828f1 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 16:40:43 -0500 Subject: [PATCH 10/18] Add methods to People and test class --- .../java/io/zipcoder/interfaces/People.java | 53 ++++++++++++++++++- .../io/zipcoder/interfaces/PeopleTest.java | 36 +++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 src/test/java/io/zipcoder/interfaces/PeopleTest.java diff --git a/src/main/java/io/zipcoder/interfaces/People.java b/src/main/java/io/zipcoder/interfaces/People.java index 3b164ce8..13fd1740 100644 --- a/src/main/java/io/zipcoder/interfaces/People.java +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -1,4 +1,55 @@ package io.zipcoder.interfaces; -public class People { +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class People implements Iterable{ + + List personList = new ArrayList<>(); + Person[] personArray; + + + public void add (Person person){ + this.personList.add(person); + } + + public Person findById(Long id){ + + for (Person eachPerson : this.personList){ + if (eachPerson.getId() == id) return eachPerson; + } + return null; + } + + public Boolean contains(Person person){ + return this.personList.contains(person); + } + + public void remove(Person person){ + if (contains(person)){ + this.personList.remove(person); + } + } + + public void remove(Long id){ + this.personList.remove(findById(id)); + } + + public void removeAll(){ + this.personList.clear(); + } + + public Integer count(){ + return this.personList.size(); + } + + public Person[] toArray(){ + return this.personList.toArray(personArray); + } + + @Override + public Iterator iterator() { + return null; + } } 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..6bb70a18 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/PeopleTest.java @@ -0,0 +1,36 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class PeopleTest { + People testPerson; + + @Test + public void add() { + testPerson = new People(); + Person person = new Person(32L,"Joe"); + Integer actual; + + Integer expected = 0; + actual = testPerson.count(); + + Assert.assertEquals(expected,actual); + + testPerson.add(person); + expected = 1; + actual = testPerson.count(); + + Assert.assertEquals(expected,actual); + } + + @Test + public void findById() { + } + + @Test + public void remove() { + } +} \ No newline at end of file From 89dfcfe65d0caebf1f02c1c0d58a82278f56e238 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 16:44:36 -0500 Subject: [PATCH 11/18] Add test for find by id --- .../java/io/zipcoder/interfaces/PeopleTest.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/test/java/io/zipcoder/interfaces/PeopleTest.java b/src/test/java/io/zipcoder/interfaces/PeopleTest.java index 6bb70a18..543fc36e 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 { People testPerson; @Test - public void add() { + public void testAdd() { testPerson = new People(); Person person = new Person(32L,"Joe"); Integer actual; @@ -27,10 +27,17 @@ public void add() { } @Test - public void findById() { + public void testFindById() { + testPerson = new People(); + Person person = new Person(32L,"Joe"); + + testPerson.add(person); + + Assert.assertEquals(person,testPerson.findById(32L)); + Assert.assertNotEquals(person,testPerson.findById(31L)); } @Test - public void remove() { + public void testRemove() { } } \ No newline at end of file From 8f26a142b44a7040e08994215a9947f03c499182 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 16:47:17 -0500 Subject: [PATCH 12/18] Add test for remove --- src/test/java/io/zipcoder/interfaces/PeopleTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/test/java/io/zipcoder/interfaces/PeopleTest.java b/src/test/java/io/zipcoder/interfaces/PeopleTest.java index 543fc36e..d92e3b31 100644 --- a/src/test/java/io/zipcoder/interfaces/PeopleTest.java +++ b/src/test/java/io/zipcoder/interfaces/PeopleTest.java @@ -39,5 +39,17 @@ public void testFindById() { @Test public void testRemove() { + testPerson = new People(); + Person person = new Person(32L,"Joe"); + Person person1 = new Person(30L,"Jack"); + + testPerson.add(person); + testPerson.add(person1); + + Integer expected = 1; + testPerson.remove(32L); + Integer actual = testPerson.count(); + + Assert.assertEquals(expected,actual); } } \ No newline at end of file From f4ecbd3171e21b5c9ccf50343315021fd7ec2069 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 18:10:52 -0500 Subject: [PATCH 13/18] Add test for getInstance --- .../java/io/zipcoder/interfaces/Students.java | 14 ++++++++++ .../io/zipcoder/interfaces/StudentsTest.java | 27 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/test/java/io/zipcoder/interfaces/StudentsTest.java diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index f80ca13a..1d517e76 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -1,4 +1,18 @@ package io.zipcoder.interfaces; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class Students { + private static final List INSTANCE = new ArrayList<>(); + + private Students(Student student){ + // private constructor to avoid client applications to use constructor + INSTANCE.add(student); + } + + public static List getInstance(){ + return INSTANCE; + } } 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..4c0ef89a --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/StudentsTest.java @@ -0,0 +1,27 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; +import java.util.List; + + +public class StudentsTest { + + @Test + public void getInstance() { + List testStudents = Students.getInstance(); + Student student1 = new Student(32L,"Joe"); + Student student2 = new Student(31L,"Jack"); + + testStudents.add(student1); + testStudents.add(student2); + + for (Student eachS : testStudents){ + System.out.println(eachS.getName() + " - " + eachS.getId()); + } + + Integer expected = 2; + Integer actual = testStudents.size(); + Assert.assertEquals(expected,actual); + } +} \ No newline at end of file From efaf708b9f03a45d70306444ed5f71afd01c7b0c Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 18:31:34 -0500 Subject: [PATCH 14/18] Created singleton Instructor and tests --- pom.xml | 4 +++ .../io/zipcoder/interfaces/Instructors.java | 14 +++++++++ .../java/io/zipcoder/interfaces/Students.java | 1 - .../zipcoder/interfaces/InstructorsTest.java | 29 +++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/test/java/io/zipcoder/interfaces/InstructorsTest.java diff --git a/pom.xml b/pom.xml index f0effe12..63b545ff 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,8 @@ UTF-8 + 1.8 + 1.8 @@ -22,4 +24,6 @@ test + + diff --git a/src/main/java/io/zipcoder/interfaces/Instructors.java b/src/main/java/io/zipcoder/interfaces/Instructors.java index 2e0acc8d..0d380fd8 100644 --- a/src/main/java/io/zipcoder/interfaces/Instructors.java +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -1,4 +1,18 @@ package io.zipcoder.interfaces; +import java.util.ArrayList; +import java.util.List; + public class Instructors { + + private static final List INSTANCE = new ArrayList<>(); + + private Instructors (Instructor instructor){ + // private constructor + INSTANCE.add(instructor); + } + + public static List getInstance(){ + return INSTANCE; + } } diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index 1d517e76..1b0e7615 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -1,7 +1,6 @@ package io.zipcoder.interfaces; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; public class Students { 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..ca029e01 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/InstructorsTest.java @@ -0,0 +1,29 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; +import java.util.List; + + +public class InstructorsTest { + + @Test + public void getInstance() { + List testInstructors = Instructors.getInstance(); + Instructor instructor1 = new Instructor(33L,"Kris"); + Instructor instructor2 = new Instructor(35L,"Dolio"); + Instructor instructor3 = new Instructor(34L,"Roberto"); + testInstructors.add(instructor1); + testInstructors.add(instructor2); + testInstructors.add(instructor3); + + for (Instructor eachInst : testInstructors){ + System.out.println(eachInst.getName() + " - " + eachInst.getId()); + } + + Integer expected = 3; + Integer actual = testInstructors.size(); + + Assert.assertEquals(expected,actual); + } +} \ No newline at end of file From 6bbb7aedd8e5f0a3cfc875a6b7f15e52f887d53f Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Thu, 14 Nov 2019 22:04:19 -0500 Subject: [PATCH 15/18] Add tests for host lecture --- .../interfaces/ZipCodeWilmington.java | 35 +++++++++ .../interfaces/ZipCodeWilmingtonTest.java | 75 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java diff --git a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java index f9bad7e6..58eefb03 100644 --- a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -1,4 +1,39 @@ package io.zipcoder.interfaces; +import interfaces.Learner; +import interfaces.Teacher; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class ZipCodeWilmington { + + + private List students = Students.getInstance(); + private List instructors = Instructors.getInstance(); + private Map studyMap; + + public void hostLecture(Teacher teacher, double numberOfHours){ + for (Instructor eachInstructor : instructors){ + if (eachInstructor == teacher){ + // needed to cast (new Learner[0]) + eachInstructor.lecture(students.toArray(new Learner[0]),numberOfHours); + } + } + } + + public void hostLecture(long id, double numberOfHours){ + for (Instructor eachInstructor : instructors){ + if (eachInstructor.getId() == id){ +// needed to cast (new Learner[0]) + eachInstructor.lecture(students.toArray(new Learner[0]),numberOfHours); + } + } + } + + public Map getStudyMap(){ + studyMap = new HashMap(); + return studyMap; + } } 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..c7f285f2 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java @@ -0,0 +1,75 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +import java.util.List; + +import static org.junit.Assert.*; + +public class ZipCodeWilmingtonTest { + + @Test + public void hostLecture() { + List cohort = Students.getInstance(); + List teachers = Instructors.getInstance(); + + Student student1 = new Student(20L,"Joe"); + Student student2 = new Student(21L, "Jack"); + Student student3 = new Student(22L,"Kane"); + + Instructor instructor1 = new Instructor(30L,"Dolio"); + Instructor instructor2 = new Instructor(31L,"Roberto"); + + cohort.add(student1); + cohort.add(student2); + cohort.add(student3); + + teachers.add(instructor1); + teachers.add(instructor2); + + ZipCodeWilmington testZCW = new ZipCodeWilmington(); + + testZCW.hostLecture(30L,90); + + Double expected = 30.0; + Double actual = 0.0; + for (Student eachStudent : cohort){ + actual = eachStudent.getTotalStudyTime(); + Assert.assertEquals(expected,actual,0.0); + } + + } + + @Test + public void testHostLecture() { + + List cohort = Students.getInstance(); + List teachers = Instructors.getInstance(); + + Student student1 = new Student(20L,"Joe"); + Student student2 = new Student(21L, "Jack"); + Student student3 = new Student(22L,"Kane"); + + Instructor instructor1 = new Instructor(30L,"Dolio"); + Instructor instructor2 = new Instructor(31L,"Roberto"); + + cohort.add(student1); + cohort.add(student2); + cohort.add(student3); + + teachers.add(instructor1); + teachers.add(instructor2); + + ZipCodeWilmington testZCW = new ZipCodeWilmington(); + + testZCW.hostLecture(instructor2,90); + + Double expected = 30.0; + Double actual = 0.0; + for (Student eachStudent : cohort){ + actual = eachStudent.getTotalStudyTime(); + Assert.assertEquals(expected,actual,0.0); + } + } +} \ No newline at end of file From a70368aa6fb47be0ce5f7cfbbba469ec52be80e7 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Fri, 15 Nov 2019 08:14:11 -0500 Subject: [PATCH 16/18] changed signature to People. Cannot get ZipcodeW to work as per instructions to remove the cast --- .../io/zipcoder/interfaces/Instructors.java | 12 +++- .../java/io/zipcoder/interfaces/People.java | 26 ++++--- .../java/io/zipcoder/interfaces/Students.java | 13 +++- .../interfaces/ZipCodeWilmington.java | 9 ++- .../io/zipcoder/interfaces/PeopleTest.java | 68 ++++++++++--------- 5 files changed, 76 insertions(+), 52 deletions(-) diff --git a/src/main/java/io/zipcoder/interfaces/Instructors.java b/src/main/java/io/zipcoder/interfaces/Instructors.java index 0d380fd8..08c850a6 100644 --- a/src/main/java/io/zipcoder/interfaces/Instructors.java +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -3,7 +3,7 @@ import java.util.ArrayList; import java.util.List; -public class Instructors { +public final class Instructors extends People { private static final List INSTANCE = new ArrayList<>(); @@ -15,4 +15,14 @@ private Instructors (Instructor instructor){ public static List getInstance(){ return INSTANCE; } + + + public Instructor[] toArray() { + Instructor[] instructorsArray = new Instructor[this.INSTANCE.size()]; + int i = 0; + for (Instructor eachInstructor : this.INSTANCE){ + instructorsArray[i++] = eachInstructor; + } + return instructorsArray; + } } diff --git a/src/main/java/io/zipcoder/interfaces/People.java b/src/main/java/io/zipcoder/interfaces/People.java index 13fd1740..acd53ebd 100644 --- a/src/main/java/io/zipcoder/interfaces/People.java +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -4,29 +4,29 @@ import java.util.Iterator; import java.util.List; -public class People implements Iterable{ +public abstract class People implements Iterable{ - List personList = new ArrayList<>(); - Person[] personArray; + List personList = new ArrayList<>(); + E[] personArray; - public void add (Person person){ + public void add (E person){ this.personList.add(person); } - public Person findById(Long id){ + public E findById(Long id){ - for (Person eachPerson : this.personList){ + for (E eachPerson : this.personList){ if (eachPerson.getId() == id) return eachPerson; } return null; } - public Boolean contains(Person person){ + public Boolean contains(E person){ return this.personList.contains(person); } - public void remove(Person person){ + public void remove(E person){ if (contains(person)){ this.personList.remove(person); } @@ -44,12 +44,10 @@ public Integer count(){ return this.personList.size(); } - public Person[] toArray(){ - return this.personList.toArray(personArray); - } + public abstract E[] toArray(); - @Override - public Iterator iterator() { - return null; + public Iterator iterator() { + + return this.personList.iterator(); } } diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index 1b0e7615..93ec5118 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -3,7 +3,8 @@ import java.util.ArrayList; import java.util.List; -public class Students { +public final class Students extends People { + private static final List INSTANCE = new ArrayList<>(); private Students(Student student){ @@ -14,4 +15,14 @@ private Students(Student student){ public static List getInstance(){ return INSTANCE; } + + + public Student[] toArray() { + Student[] studentArray = new Student[this.INSTANCE.size()]; + int i = 0; + for (Student eachStudent : this.INSTANCE){ + studentArray[i++] = eachStudent; + } + return studentArray; + } } diff --git a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java index 58eefb03..0bbb5934 100644 --- a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -17,8 +17,8 @@ public class ZipCodeWilmington { public void hostLecture(Teacher teacher, double numberOfHours){ for (Instructor eachInstructor : instructors){ if (eachInstructor == teacher){ - // needed to cast (new Learner[0]) - eachInstructor.lecture(students.toArray(new Learner[0]),numberOfHours); +// needed to cast (new Learner[0]) + eachInstructor.lecture((Learner[]) students.toArray(),numberOfHours); } } } @@ -27,13 +27,16 @@ public void hostLecture(long id, double numberOfHours){ for (Instructor eachInstructor : instructors){ if (eachInstructor.getId() == id){ // needed to cast (new Learner[0]) - eachInstructor.lecture(students.toArray(new Learner[0]),numberOfHours); + eachInstructor.lecture((Learner[]) students.toArray(),numberOfHours); } } } public Map getStudyMap(){ studyMap = new HashMap(); + for (Student eachStudent : this.students){ + studyMap.put(eachStudent,eachStudent.getTotalStudyTime()); + } return studyMap; } } diff --git a/src/test/java/io/zipcoder/interfaces/PeopleTest.java b/src/test/java/io/zipcoder/interfaces/PeopleTest.java index d92e3b31..14eafabe 100644 --- a/src/test/java/io/zipcoder/interfaces/PeopleTest.java +++ b/src/test/java/io/zipcoder/interfaces/PeopleTest.java @@ -8,48 +8,50 @@ public class PeopleTest { People testPerson; + // this can't be instatiated anymore + @Test public void testAdd() { - testPerson = new People(); - Person person = new Person(32L,"Joe"); - Integer actual; - - Integer expected = 0; - actual = testPerson.count(); - - Assert.assertEquals(expected,actual); - - testPerson.add(person); - expected = 1; - actual = testPerson.count(); - - Assert.assertEquals(expected,actual); +// testPerson = new People(); +// Person person = new Person(32L,"Joe"); +// Integer actual; +// +// Integer expected = 0; +// actual = testPerson.count(); +// +// Assert.assertEquals(expected,actual); +// +// testPerson.add(person); +// expected = 1; +// actual = testPerson.count(); +// +// Assert.assertEquals(expected,actual); } @Test public void testFindById() { - testPerson = new People(); - Person person = new Person(32L,"Joe"); - - testPerson.add(person); - - Assert.assertEquals(person,testPerson.findById(32L)); - Assert.assertNotEquals(person,testPerson.findById(31L)); +// testPerson = new People(); +// Person person = new Person(32L,"Joe"); +// +// testPerson.add(person); +// +// Assert.assertEquals(person,testPerson.findById(32L)); +// Assert.assertNotEquals(person,testPerson.findById(31L)); } @Test public void testRemove() { - testPerson = new People(); - Person person = new Person(32L,"Joe"); - Person person1 = new Person(30L,"Jack"); - - testPerson.add(person); - testPerson.add(person1); - - Integer expected = 1; - testPerson.remove(32L); - Integer actual = testPerson.count(); - - Assert.assertEquals(expected,actual); +// testPerson = new People(); +// Person person = new Person(32L,"Joe"); +// Person person1 = new Person(30L,"Jack"); +// +// testPerson.add(person); +// testPerson.add(person1); +// +// Integer expected = 1; +// testPerson.remove(32L); +// Integer actual = testPerson.count(); +// +// Assert.assertEquals(expected,actual); } } \ No newline at end of file From 7e0ca2bb8cb1f2137059dc463d2f1b979c7ce18f Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Fri, 15 Nov 2019 11:37:51 -0500 Subject: [PATCH 17/18] Add educator enum and tests --- .../java/io/zipcoder/interfaces/Educator.java | 34 +++++++++++- .../io/zipcoder/interfaces/Instructors.java | 11 ++-- .../java/io/zipcoder/interfaces/People.java | 3 +- .../java/io/zipcoder/interfaces/Students.java | 9 ++- .../interfaces/ZipCodeWilmington.java | 23 +++++--- .../io/zipcoder/interfaces/EducatorTest.java | 55 +++++++++++++++++++ .../zipcoder/interfaces/InstructorsTest.java | 4 +- .../io/zipcoder/interfaces/StudentsTest.java | 4 +- .../interfaces/ZipCodeWilmingtonTest.java | 37 ++++++------- 9 files changed, 136 insertions(+), 44 deletions(-) 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 index 64068796..3ca023a6 100644 --- a/src/main/java/io/zipcoder/interfaces/Educator.java +++ b/src/main/java/io/zipcoder/interfaces/Educator.java @@ -1,4 +1,36 @@ package io.zipcoder.interfaces; -public enum Educator { +import interfaces.Learner; +import interfaces.Teacher; + +public enum Educator implements Teacher { + + DOLIO (new Instructor(20L,"Wil"),0.0), + FROILAN (new Instructor(21L,"Joe"),0.0), + ROBERTO (new Instructor(22L,"Jack"),0.0); + + private final Instructor instructor; + private double timeWorked; + + + Educator(Instructor instructor, double timeWorked) { + this.instructor = instructor; + this.timeWorked = timeWorked; + } + + public double getTimeWorked() { + return this.timeWorked; + } + + @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/main/java/io/zipcoder/interfaces/Instructors.java b/src/main/java/io/zipcoder/interfaces/Instructors.java index 08c850a6..746eb801 100644 --- a/src/main/java/io/zipcoder/interfaces/Instructors.java +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -5,20 +5,21 @@ public final class Instructors extends People { - private static final List INSTANCE = new ArrayList<>(); + private static final Instructors INSTANCE = new Instructors(); - private Instructors (Instructor instructor){ + private Instructors (){ // private constructor - INSTANCE.add(instructor); } - public static List getInstance(){ + public static Instructors getInstance(){ return INSTANCE; } + + public Instructor[] toArray() { - Instructor[] instructorsArray = new Instructor[this.INSTANCE.size()]; + Instructor[] instructorsArray = new Instructor[this.INSTANCE.count()]; int i = 0; for (Instructor eachInstructor : this.INSTANCE){ instructorsArray[i++] = eachInstructor; diff --git a/src/main/java/io/zipcoder/interfaces/People.java b/src/main/java/io/zipcoder/interfaces/People.java index acd53ebd..59c7d523 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 javax.swing.*; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -47,7 +48,7 @@ public Integer count(){ public abstract E[] toArray(); public Iterator iterator() { - return this.personList.iterator(); } + } diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index 93ec5118..f8e5a1e1 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -5,20 +5,19 @@ public final class Students extends People { - private static final List INSTANCE = new ArrayList<>(); + private static final Students INSTANCE = new Students(); - private Students(Student student){ + private Students(){ // private constructor to avoid client applications to use constructor - INSTANCE.add(student); } - public static List getInstance(){ + public static Students getInstance(){ return INSTANCE; } public Student[] toArray() { - Student[] studentArray = new Student[this.INSTANCE.size()]; + Student[] studentArray = new Student[this.INSTANCE.count()]; int i = 0; for (Student eachStudent : this.INSTANCE){ studentArray[i++] = eachStudent; diff --git a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java index 0bbb5934..337b614a 100644 --- a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -7,18 +7,28 @@ import java.util.List; import java.util.Map; -public class ZipCodeWilmington { +public final class ZipCodeWilmington { + private static final ZipCodeWilmington INSTANCE =new ZipCodeWilmington(); - private List students = Students.getInstance(); - private List instructors = Instructors.getInstance(); + private Students students = Students.getInstance(); + private Instructors instructors = Instructors.getInstance(); private Map studyMap; + private ZipCodeWilmington(){ + // constructor; + } + + public static ZipCodeWilmington getInstance(){ + return INSTANCE; + } + + + public void hostLecture(Teacher teacher, double numberOfHours){ for (Instructor eachInstructor : instructors){ if (eachInstructor == teacher){ -// needed to cast (new Learner[0]) - eachInstructor.lecture((Learner[]) students.toArray(),numberOfHours); + eachInstructor.lecture(students.toArray(),numberOfHours); } } } @@ -26,8 +36,7 @@ public void hostLecture(Teacher teacher, double numberOfHours){ public void hostLecture(long id, double numberOfHours){ for (Instructor eachInstructor : instructors){ if (eachInstructor.getId() == id){ -// needed to cast (new Learner[0]) - eachInstructor.lecture((Learner[]) students.toArray(),numberOfHours); + eachInstructor.lecture(students.toArray(),numberOfHours); } } } 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..1c281a8e --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/EducatorTest.java @@ -0,0 +1,55 @@ +package io.zipcoder.interfaces; + +import interfaces.Teacher; +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class EducatorTest { + + @Test + public void testImplementation(){ + Assert.assertTrue(Educator.DOLIO instanceof Teacher); + } + + @Test + public void getTimeWorked() { + Student student1 = new Student(20L,"Joe"); + Student student2 = new Student(22L,"Jack"); + Student[] students = {student1,student2}; + + Educator.DOLIO.lecture(students,20); + Double expected = 20.0; + Double actual = Educator.DOLIO.getTimeWorked(); + + Assert.assertEquals(expected,actual,0.0); + } + + @Test + public void teach() { + //each student + Student student1 = new Student(20L,"Joe"); + Educator.ROBERTO.teach(student1,10); + + double expected = 10.0; + double actual = student1.getTotalStudyTime(); + + Assert.assertEquals(expected,actual,0.0); + } + + @Test + public void lecture() { + // divide per nr of students + Student student1 = new Student(20L,"Joe"); + Student student2 = new Student(21L,"Jack"); + Student[] students = {student1,student2}; + + Educator.ROBERTO.lecture(students,90); + + double expected = 45; + double actual = student1.getTotalStudyTime(); + + Assert.assertEquals(expected,actual,0.0); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/interfaces/InstructorsTest.java b/src/test/java/io/zipcoder/interfaces/InstructorsTest.java index ca029e01..7acf6ab1 100644 --- a/src/test/java/io/zipcoder/interfaces/InstructorsTest.java +++ b/src/test/java/io/zipcoder/interfaces/InstructorsTest.java @@ -9,7 +9,7 @@ public class InstructorsTest { @Test public void getInstance() { - List testInstructors = Instructors.getInstance(); + Instructors testInstructors = Instructors.getInstance(); Instructor instructor1 = new Instructor(33L,"Kris"); Instructor instructor2 = new Instructor(35L,"Dolio"); Instructor instructor3 = new Instructor(34L,"Roberto"); @@ -22,7 +22,7 @@ public void getInstance() { } Integer expected = 3; - Integer actual = testInstructors.size(); + Integer actual = testInstructors.count(); Assert.assertEquals(expected,actual); } diff --git a/src/test/java/io/zipcoder/interfaces/StudentsTest.java b/src/test/java/io/zipcoder/interfaces/StudentsTest.java index 4c0ef89a..163620e2 100644 --- a/src/test/java/io/zipcoder/interfaces/StudentsTest.java +++ b/src/test/java/io/zipcoder/interfaces/StudentsTest.java @@ -9,7 +9,7 @@ public class StudentsTest { @Test public void getInstance() { - List testStudents = Students.getInstance(); + Students testStudents = Students.getInstance(); Student student1 = new Student(32L,"Joe"); Student student2 = new Student(31L,"Jack"); @@ -21,7 +21,7 @@ public void getInstance() { } Integer expected = 2; - Integer actual = testStudents.size(); + Integer actual = testStudents.count(); Assert.assertEquals(expected,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 c7f285f2..e44c33dc 100644 --- a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java +++ b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java @@ -3,16 +3,12 @@ import org.junit.Assert; import org.junit.Test; -import java.util.List; - -import static org.junit.Assert.*; - public class ZipCodeWilmingtonTest { @Test - public void hostLecture() { - List cohort = Students.getInstance(); - List teachers = Instructors.getInstance(); + public void testhostLectureById() { + Students cohort = Students.getInstance(); + Instructors teachers = Instructors.getInstance(); Student student1 = new Student(20L,"Joe"); Student student2 = new Student(21L, "Jack"); @@ -28,31 +24,30 @@ public void hostLecture() { teachers.add(instructor1); teachers.add(instructor2); - ZipCodeWilmington testZCW = new ZipCodeWilmington(); + ZipCodeWilmington testZCW = ZipCodeWilmington.getInstance(); testZCW.hostLecture(30L,90); Double expected = 30.0; - Double actual = 0.0; for (Student eachStudent : cohort){ - actual = eachStudent.getTotalStudyTime(); + Double actual = eachStudent.getTotalStudyTime(); Assert.assertEquals(expected,actual,0.0); } } @Test - public void testHostLecture() { + public void testHostLectureByInstructor() { - List cohort = Students.getInstance(); - List teachers = Instructors.getInstance(); + Students cohort = Students.getInstance(); + Instructors teachers = Instructors.getInstance(); - Student student1 = new Student(20L,"Joe"); - Student student2 = new Student(21L, "Jack"); - Student student3 = new Student(22L,"Kane"); + Student student1 = new Student(30L,"John"); + Student student2 = new Student(31L, "V"); + Student student3 = new Student(32L,"X"); - Instructor instructor1 = new Instructor(30L,"Dolio"); - Instructor instructor2 = new Instructor(31L,"Roberto"); + Instructor instructor1 = new Instructor(40L,"Kris"); + Instructor instructor2 = new Instructor(41L,"Chris"); cohort.add(student1); cohort.add(student2); @@ -61,14 +56,14 @@ public void testHostLecture() { teachers.add(instructor1); teachers.add(instructor2); - ZipCodeWilmington testZCW = new ZipCodeWilmington(); + ZipCodeWilmington testZCW = ZipCodeWilmington.getInstance(); testZCW.hostLecture(instructor2,90); Double expected = 30.0; - Double actual = 0.0; + for (Student eachStudent : cohort){ - actual = eachStudent.getTotalStudyTime(); + Double actual = eachStudent.getTotalStudyTime(); Assert.assertEquals(expected,actual,0.0); } } From 166da6e1ea35da05c6f5f41fa16f872796fb6035 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Fri, 15 Nov 2019 18:49:48 -0500 Subject: [PATCH 18/18] finished lab --- .../java/io/zipcoder/interfaces/Educator.java | 1 - .../io/zipcoder/interfaces/Instructors.java | 17 ++++---- .../java/io/zipcoder/interfaces/Students.java | 16 ++++---- .../interfaces/ZipCodeWilmington.java | 36 ++++++----------- .../zipcoder/interfaces/InstructorsTest.java | 9 +---- .../io/zipcoder/interfaces/StudentsTest.java | 9 +---- .../interfaces/ZipCodeWilmingtonTest.java | 39 +++---------------- 7 files changed, 36 insertions(+), 91 deletions(-) diff --git a/src/main/java/io/zipcoder/interfaces/Educator.java b/src/main/java/io/zipcoder/interfaces/Educator.java index 3ca023a6..adcd7bd5 100644 --- a/src/main/java/io/zipcoder/interfaces/Educator.java +++ b/src/main/java/io/zipcoder/interfaces/Educator.java @@ -6,7 +6,6 @@ public enum Educator implements Teacher { DOLIO (new Instructor(20L,"Wil"),0.0), - FROILAN (new Instructor(21L,"Joe"),0.0), ROBERTO (new Instructor(22L,"Jack"),0.0); private final Instructor instructor; diff --git a/src/main/java/io/zipcoder/interfaces/Instructors.java b/src/main/java/io/zipcoder/interfaces/Instructors.java index 746eb801..b2782c32 100644 --- a/src/main/java/io/zipcoder/interfaces/Instructors.java +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -1,23 +1,15 @@ package io.zipcoder.interfaces; -import java.util.ArrayList; -import java.util.List; public final class Instructors extends People { - private static final Instructors INSTANCE = new Instructors(); + private static final Instructors INSTANCE;// = new Instructors(); - private Instructors (){ - // private constructor - } public static Instructors getInstance(){ return INSTANCE; } - - - public Instructor[] toArray() { Instructor[] instructorsArray = new Instructor[this.INSTANCE.count()]; int i = 0; @@ -26,4 +18,11 @@ public Instructor[] toArray() { } return instructorsArray; } + + // the below is how you instantiate it + static { + INSTANCE = new Instructors(); + INSTANCE.add(new Instructor(30L,"Dolio")); + INSTANCE.add(new Instructor(31L,"Roberto")); + } } diff --git a/src/main/java/io/zipcoder/interfaces/Students.java b/src/main/java/io/zipcoder/interfaces/Students.java index f8e5a1e1..166f24d3 100644 --- a/src/main/java/io/zipcoder/interfaces/Students.java +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -1,15 +1,9 @@ package io.zipcoder.interfaces; -import java.util.ArrayList; -import java.util.List; public final class Students extends People { - private static final Students INSTANCE = new Students(); - - private Students(){ - // private constructor to avoid client applications to use constructor - } + private static final Students INSTANCE;// = new Students(); public static Students getInstance(){ return INSTANCE; @@ -24,4 +18,12 @@ public Student[] toArray() { } return studentArray; } + + // the below is how you instantiate it + static { + INSTANCE = new Students(); + INSTANCE.add(new Student(30L,"John")); + INSTANCE.add(new Student(31L, "V")); + INSTANCE.add(new Student(32L,"X")); + } } diff --git a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java index 337b614a..736cfaec 100644 --- a/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -1,49 +1,35 @@ package io.zipcoder.interfaces; - -import interfaces.Learner; import interfaces.Teacher; import java.util.HashMap; -import java.util.List; import java.util.Map; public final class ZipCodeWilmington { - private static final ZipCodeWilmington INSTANCE =new ZipCodeWilmington(); + private static final ZipCodeWilmington INSTANCE = new ZipCodeWilmington(); - private Students students = Students.getInstance(); - private Instructors instructors = Instructors.getInstance(); - private Map studyMap; + private static Students students = Students.getInstance(); + private static Instructors instructors = Instructors.getInstance(); + private static Map studyMap; - private ZipCodeWilmington(){ - // constructor; - } public static ZipCodeWilmington getInstance(){ return INSTANCE; } - - public void hostLecture(Teacher teacher, double numberOfHours){ - for (Instructor eachInstructor : instructors){ - if (eachInstructor == teacher){ - eachInstructor.lecture(students.toArray(),numberOfHours); - } - } + // static so it can be accessed directly + public static void hostLecture(Teacher teacher, double numberOfHours){ + teacher.lecture(students.toArray(),numberOfHours); } - public void hostLecture(long id, double numberOfHours){ - for (Instructor eachInstructor : instructors){ - if (eachInstructor.getId() == id){ - eachInstructor.lecture(students.toArray(),numberOfHours); - } - } + public static void hostLecture(long id, double numberOfHours){ + instructors.findById(id).lecture(students.toArray(),numberOfHours); } - public Map getStudyMap(){ + public static Map getStudyMap(){ studyMap = new HashMap(); - for (Student eachStudent : this.students){ + for (Student eachStudent : students){ studyMap.put(eachStudent,eachStudent.getTotalStudyTime()); } return studyMap; diff --git a/src/test/java/io/zipcoder/interfaces/InstructorsTest.java b/src/test/java/io/zipcoder/interfaces/InstructorsTest.java index 7acf6ab1..03e5ff8f 100644 --- a/src/test/java/io/zipcoder/interfaces/InstructorsTest.java +++ b/src/test/java/io/zipcoder/interfaces/InstructorsTest.java @@ -10,18 +10,13 @@ public class InstructorsTest { @Test public void getInstance() { Instructors testInstructors = Instructors.getInstance(); - Instructor instructor1 = new Instructor(33L,"Kris"); - Instructor instructor2 = new Instructor(35L,"Dolio"); - Instructor instructor3 = new Instructor(34L,"Roberto"); - testInstructors.add(instructor1); - testInstructors.add(instructor2); - testInstructors.add(instructor3); + for (Instructor eachInst : testInstructors){ System.out.println(eachInst.getName() + " - " + eachInst.getId()); } - Integer expected = 3; + Integer expected = 2; Integer actual = testInstructors.count(); Assert.assertEquals(expected,actual); diff --git a/src/test/java/io/zipcoder/interfaces/StudentsTest.java b/src/test/java/io/zipcoder/interfaces/StudentsTest.java index 163620e2..9c5d182a 100644 --- a/src/test/java/io/zipcoder/interfaces/StudentsTest.java +++ b/src/test/java/io/zipcoder/interfaces/StudentsTest.java @@ -2,25 +2,18 @@ import org.junit.Assert; import org.junit.Test; -import java.util.List; - public class StudentsTest { @Test public void getInstance() { Students testStudents = Students.getInstance(); - Student student1 = new Student(32L,"Joe"); - Student student2 = new Student(31L,"Jack"); - - testStudents.add(student1); - testStudents.add(student2); for (Student eachS : testStudents){ System.out.println(eachS.getName() + " - " + eachS.getId()); } - Integer expected = 2; + Integer expected = 3; Integer actual = testStudents.count(); Assert.assertEquals(expected,actual); } diff --git a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java index e44c33dc..7822572c 100644 --- a/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java +++ b/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java @@ -10,23 +10,7 @@ public void testhostLectureById() { Students cohort = Students.getInstance(); Instructors teachers = Instructors.getInstance(); - Student student1 = new Student(20L,"Joe"); - Student student2 = new Student(21L, "Jack"); - Student student3 = new Student(22L,"Kane"); - - Instructor instructor1 = new Instructor(30L,"Dolio"); - Instructor instructor2 = new Instructor(31L,"Roberto"); - - cohort.add(student1); - cohort.add(student2); - cohort.add(student3); - - teachers.add(instructor1); - teachers.add(instructor2); - - ZipCodeWilmington testZCW = ZipCodeWilmington.getInstance(); - - testZCW.hostLecture(30L,90); + ZipCodeWilmington.hostLecture(30L,90); Double expected = 30.0; for (Student eachStudent : cohort){ @@ -34,6 +18,8 @@ public void testhostLectureById() { Assert.assertEquals(expected,actual,0.0); } + ZipCodeWilmington.hostLecture(30L,-90); + } @Test @@ -42,23 +28,7 @@ public void testHostLectureByInstructor() { Students cohort = Students.getInstance(); Instructors teachers = Instructors.getInstance(); - Student student1 = new Student(30L,"John"); - Student student2 = new Student(31L, "V"); - Student student3 = new Student(32L,"X"); - - Instructor instructor1 = new Instructor(40L,"Kris"); - Instructor instructor2 = new Instructor(41L,"Chris"); - - cohort.add(student1); - cohort.add(student2); - cohort.add(student3); - - teachers.add(instructor1); - teachers.add(instructor2); - - ZipCodeWilmington testZCW = ZipCodeWilmington.getInstance(); - - testZCW.hostLecture(instructor2,90); + ZipCodeWilmington.hostLecture(teachers.findById(30L),90); Double expected = 30.0; @@ -66,5 +36,6 @@ public void testHostLectureByInstructor() { Double actual = eachStudent.getTotalStudyTime(); Assert.assertEquals(expected,actual,0.0); } + ZipCodeWilmington.hostLecture(30L,-90); } } \ No newline at end of file