diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..b9b34643 --- /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..63e90019 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 00000000..712ab9d9 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ 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..b2e4a345 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ 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..415829e4 --- /dev/null +++ b/interfaces-1.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index f0effe12..0371e0b9 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,19 @@ io.zipcoder interfaces-1 0.0.1-SNAPSHOT - jar + + + + org.apache.maven.plugins + maven-compiler-plugin + + 7 + 7 + + + + + jar interfaces-1 http://maven.apache.org 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..5a1448b6 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Educator.java @@ -0,0 +1,23 @@ +package io.zipcoder.interfaces; + +public enum Educator implements Teacher { + LEON(1), DOLIO(2), KRIS(3); + + private final Instructor instructor; + double timeWorked; + + private Educator(long id) { + this.instructor = Instructors.getInstance().findById(id); + Instructors.getInstance().add(instructor); + } + + public void teach(Learner learner, double numberOfHours) { + instructor.teach(learner, numberOfHours); + timeWorked += numberOfHours; + } + + public void lecture(Learner[] learners, double numberOfHours) { + instructor.lecture(learners, numberOfHours); + timeWorked += numberOfHours; + } +} 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..9ccfa05e --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructor.java @@ -0,0 +1,20 @@ +package io.zipcoder.interfaces; + +public class Instructor extends Person implements Teacher { + + + 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 numberOfHoursPerLearner = numberOfHours / learners.length; + for (Learner learner : learners) { + learner.learn(numberOfHoursPerLearner); + } + } +} 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..4de00f6f --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Instructors.java @@ -0,0 +1,22 @@ +package io.zipcoder.interfaces; + +public class Instructors extends People { + + private static final Instructors INSTANCE = new Instructors(); + + private Instructors() { + add(new Instructor(1, "Leon")); + add(new Instructor(2, "Dolio")); + add(new Instructor(3, "Kris")); + + } + + public static Instructors getInstance() { + return INSTANCE; + } + + @Override + public Instructor[] toArray() { + return personList.toArray(new Instructor[0]); + } +} 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..e516b4aa --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Learner.java @@ -0,0 +1,8 @@ +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..5936fa1f --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/People.java @@ -0,0 +1,54 @@ +package io.zipcoder.interfaces; + +import java.util.*; + +public abstract class People implements Iterable { + + List personList = new ArrayList<>(); + + public void add(SomePerson person) { + personList.add(person); + } + + public SomePerson findById(long id) { + for (SomePerson person : personList) { + if (person.getId() == id) { + return person; + } + } + return null; + } + + public boolean contains(SomePerson person) { + for (SomePerson personToLookFor : personList) { + if (personToLookFor.getId() == person.getId() + && personToLookFor.getName().equals(person.getName())) { + return true; + } + } + return false; + } + + public void remove(SomePerson person) { + personList.remove(person); + } + + public void remove(long id) { + remove(findById(id)); + } + + public void removeAll() { + personList.clear(); + } + + public int count() { + return personList.size(); + } + + public abstract SomePerson[] toArray(); + + public Iterator iterator() { + Iterator iterator = personList.iterator(); + return iterator; + } +} diff --git a/src/main/java/io/zipcoder/interfaces/Person.java b/src/main/java/io/zipcoder/interfaces/Person.java index fc6a3ffe..2e0e3ce1 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 { + final long id; + String name; + + 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..04800518 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Student.java @@ -0,0 +1,18 @@ +package io.zipcoder.interfaces; + +public class Student extends Person implements Learner{ + + double totalStudyTime; + + 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..73a1ac0e --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Students.java @@ -0,0 +1,36 @@ +package io.zipcoder.interfaces; + +public class Students extends People { + + private static final Students INSTANCE = new Students(); + + private Students() { + add(new Student(1, "Sitara")); + add(new Student(2, "Nicholas")); + add(new Student(3, "Denee")); + add(new Student(4, "Charnae")); + add(new Student(5, "Jennifer")); + add(new Student(6, "Nathan")); + add(new Student(7, "Zach S")); + add(new Student(8, "Jeremy")); + add(new Student(9, "Zach K")); + add(new Student(10, "Emmanuel")); + add(new Student(11, "Bobbi")); + add(new Student(12, "Rex")); + add(new Student(13, "Nishaben")); + add(new Student(14, "Raymond")); + add(new Student(15, "Dipinti")); + add(new Student(16, "John")); + add(new Student(17, "Tatiana")); + add(new Student(18, "Laura")); + } + + public static Students getInstance() { + return INSTANCE; + } + + @Override + public Student[] toArray() { + return personList.toArray(new Student[0]); + } +} 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..2c683964 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/Teacher.java @@ -0,0 +1,8 @@ +package io.zipcoder.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/ZipCodeWilmington.java b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java new file mode 100644 index 00000000..a3642b19 --- /dev/null +++ b/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java @@ -0,0 +1,36 @@ +package io.zipcoder.interfaces; + +import java.util.HashMap; +import java.util.Map; + +public class ZipCodeWilmington { + + private static final ZipCodeWilmington INSTANCE = new ZipCodeWilmington(); + private Students students = Students.getInstance(); + private Instructors instructors = Instructors.getInstance(); + + private ZipCodeWilmington() { + + } + + public static ZipCodeWilmington getInstance() { + return INSTANCE; + } + + public void hostLecture(Educator teacher, double numberOfHours) { + teacher.lecture(students.toArray(), numberOfHours); + } + + public void hostLecture(long id, double numberOfHours) { + Instructor instructor = instructors.findById(id); + instructor.lecture(students.toArray(), numberOfHours); + } + + public Map getStudyMap() { + Map map = new HashMap<>(); + for (Student student : students.personList) { + map.put(student, student.getTotalStudyTime()); + } + return map; + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestEducator.java b/src/test/java/io/zipcoder/interfaces/TestEducator.java new file mode 100644 index 00000000..033eaa0a --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestEducator.java @@ -0,0 +1,58 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class TestEducator { + + @Before + public void setUp() { + Educator educator = Educator.LEON; + educator.timeWorked = 0; + } + + @Test + public void implementationTest() { + // When + Educator educator = Educator.LEON; + + // Then + Assert.assertTrue(educator instanceof Teacher); + } + + @Test + public void teachTest() { + // Given + Educator educator = Educator.LEON; + Student student = new Student(1, "Bill"); + double numberOfHours = 2; + double expectedTeachingTime = 2; + + // When + educator.teach(student, numberOfHours); + double actualTeachingTime = educator.timeWorked; + + // Then + Assert.assertEquals(expectedTeachingTime, actualTeachingTime, 0); + } + + @Test + public void lectureTest() { + // Given + Educator educator = Educator.LEON; + Student studentBill = new Student(1, "Bill"); + Student studentBen = new Student(2, "Ben"); + Student studentAllen = new Student(3, "Allen"); + Student[] students = new Student[] {studentBill, studentBen, studentAllen}; + double numberOfHours = 18; + double expectedTeachingTime = 18; + + // When + educator.lecture(students, numberOfHours); + double actualTeachingTime = educator.timeWorked; + + // Then + Assert.assertEquals(expectedTeachingTime, actualTeachingTime, 0); + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestInstructor.java b/src/test/java/io/zipcoder/interfaces/TestInstructor.java new file mode 100644 index 00000000..38d47bf8 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestInstructor.java @@ -0,0 +1,72 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestInstructor { + + @Test + public void implementationTest() { + // Given + long id = 5; + String name = "Billy"; + + // When + Instructor instructor = new Instructor(id, name); + + // Then + Assert.assertTrue(instructor instanceof Teacher); + } + + @Test + public void inheritanceTest() { + // Given + long id = 5; + String name = "Billy"; + + // When + Instructor instructor = new Instructor(id, name); + + // Then + Assert.assertTrue(instructor instanceof Person); + } + + @Test + public void teachTest() { + // Given + Instructor instructor = new Instructor(5, "Sam"); + Student student = new Student(1, "Bill"); + double numberOfHours = 2; + double expectedStudyTime = 2; + + // When + instructor.teach(student, numberOfHours); + double actualStudyTime = student.getTotalStudyTime(); + + // Then + Assert.assertEquals(expectedStudyTime, actualStudyTime, 0); + } + + @Test + public void lectureTest() { + // Given + Instructor instructor = new Instructor(5, "Sam"); + Student studentBill = new Student(1, "Bill"); + Student studentBen = new Student(2, "Ben"); + Student studentAllen = new Student(3, "Allen"); + Student[] students = new Student[] {studentBill, studentBen, studentAllen}; + double numberOfHours = 18; + double expectedStudyTime = 6; + + // When + instructor.lecture(students, numberOfHours); + double actualStudyTimeOfBill = studentBill.getTotalStudyTime(); + double actualStudyTimeOfBen = studentBen.getTotalStudyTime(); + double actualStudyTimeOfAllen = studentAllen.getTotalStudyTime(); + + // Then + Assert.assertEquals(expectedStudyTime, actualStudyTimeOfBill, 0); + Assert.assertEquals(expectedStudyTime, actualStudyTimeOfBen, 0); + Assert.assertEquals(expectedStudyTime, actualStudyTimeOfAllen, 0); + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestInstructors.java b/src/test/java/io/zipcoder/interfaces/TestInstructors.java new file mode 100644 index 00000000..386e7a76 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestInstructors.java @@ -0,0 +1,27 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestInstructors { + + Instructors instructors = Instructors.getInstance(); + + @Test + public void areAllInstructorsInInstructorsTest() { + // Given + Instructor leon = new Instructor(1, "Leon"); + Instructor dolio = new Instructor(2, "Dolio"); + Instructor kris = new Instructor(3, "Kris"); + + // When + boolean instructorsIncludesLeon = instructors.contains(leon); + boolean instructorsIncludesDolio = instructors.contains(dolio); + boolean instructorsIncludesKris = instructors.contains(kris); + + // Then + Assert.assertTrue(instructorsIncludesLeon); + Assert.assertTrue(instructorsIncludesDolio); + Assert.assertTrue(instructorsIncludesKris); + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestPeople.java b/src/test/java/io/zipcoder/interfaces/TestPeople.java new file mode 100644 index 00000000..f145e6a5 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestPeople.java @@ -0,0 +1,81 @@ +package io.zipcoder.interfaces; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.*; + +public class TestPeople { + + @After + public void tearDown() { + Students students = Students.getInstance(); + students.remove(30); + students.remove(40); + students.remove(50); + } + + @Test + public void addTest() { + // Given + Students students = Students.getInstance(); + Student personNamedBill = new Student(30, "Bill"); + Student personNamedAllen = new Student(40, "Allen"); + Student personNamedTom = new Student(50, "Tom"); + List expectedListOfPeople = new ArrayList<>(Arrays.asList( + personNamedBill, personNamedAllen, personNamedTom)); + + // When + students.add(personNamedBill); + students.add(personNamedAllen); + students.add(personNamedTom); + List actualListOfPeople = new ArrayList<>(Arrays.asList(students.findById(30), students.findById(40), students.findById(50))); + + // Then + Assert.assertEquals(expectedListOfPeople, actualListOfPeople); + } + + @Test + public void findByIdTest() { + // Given + Students students = Students.getInstance(); + Student personNamedBill = new Student(30, "Bill"); + Student expectedPersonNamedAllen = new Student(40, "Allen"); + Student personNamedTom = new Student(50, "Tom"); + Long allensId = expectedPersonNamedAllen.getId(); + + // When + students.add(personNamedBill); + students.add(expectedPersonNamedAllen); + students.add(personNamedTom); + Student actualPersonNamedAllen = students.findById(allensId); + + // Then + Assert.assertEquals(expectedPersonNamedAllen, actualPersonNamedAllen); + } + + @Test + public void removeTest() { + // Given + Students students = Students.getInstance(); + Student personNamedBill = new Student(30, "Bill"); + Student personNamedAllen = new Student(40, "Allen"); + Student personNamedTom = new Student(50, "Tom"); + List expectedListOfPeople = new ArrayList<>(Arrays.asList( + personNamedBill, personNamedAllen)); + Integer expectedNumberOfPeople = 20; + + // When + Integer actualNumberOfPeople = (students.personList.size()) + 2; + students.add(personNamedBill); + students.add(personNamedAllen); + students.add(personNamedTom); + students.remove(personNamedTom); + List actualListOfPeople = new ArrayList<>(Arrays.asList(students.findById(30), students.findById(40), students.findById(50))); + + // Then + Assert.assertEquals(expectedNumberOfPeople, actualNumberOfPeople); + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestPerson.java b/src/test/java/io/zipcoder/interfaces/TestPerson.java index d64cd2f0..641caec1 100644 --- a/src/test/java/io/zipcoder/interfaces/TestPerson.java +++ b/src/test/java/io/zipcoder/interfaces/TestPerson.java @@ -1,5 +1,37 @@ package io.zipcoder.interfaces; +import org.junit.Assert; +import org.junit.Test; + public class TestPerson { + @Test + public void constructorTest() { + // Given + long expectedId = 5; + String expectedName = "Bob"; + + // When + Person person = new Person(expectedId, expectedName); + long actualId = person.getId(); + String actualName = person.getName(); + + // Then + Assert.assertEquals(expectedId, actualId); + Assert.assertEquals(expectedName, actualName); + } + + @Test + public void setNameTest() { + // Given + Person person = new Person(5, "Allen"); + String expectedName = "Bob"; + + // When + person.setName(expectedName); + String actualName = person.getName(); + + // Then + Assert.assertEquals(expectedName, actualName); + } } diff --git a/src/test/java/io/zipcoder/interfaces/TestStudent.java b/src/test/java/io/zipcoder/interfaces/TestStudent.java new file mode 100644 index 00000000..430b957f --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestStudent.java @@ -0,0 +1,47 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Test; + +public class TestStudent { + + @Test + public void implementationTest() { + // Given + long id = 5; + String name = "Billy"; + + // When + Student student = new Student(id, name); + + // Then + Assert.assertTrue(student instanceof Learner); + } + + @Test + public void inheritanceTest() { + // Given + long id = 5; + String name = "Billy"; + + // When + Student student = new Student(id, name); + + // Then + Assert.assertTrue(student instanceof Person); + } + + @Test + public void learnTest() { + // Given + Student student = new Student(5, "Sam"); + double expectedStudyTime = 10; + + // When + student.learn(expectedStudyTime); + double actualStudyTime = student.getTotalStudyTime(); + + // Then + Assert.assertEquals(expectedStudyTime, actualStudyTime, 0); + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestStudents.java b/src/test/java/io/zipcoder/interfaces/TestStudents.java new file mode 100644 index 00000000..f4b94aa7 --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestStudents.java @@ -0,0 +1,74 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.Iterator; + +public class TestStudents { + + @Test + public void isAllOfCohortInStudentsTest() { + // Given + Students students = Students.getInstance(); + Student sitara = new Student(1, "Sitara"); + Student nicholas = new Student(2, "Nicholas"); + Student denee = new Student(3, "Denee"); + Student charnae = new Student(4, "Charnae"); + Student jennifer = new Student(5, "Jennifer"); + Student nathan = new Student(6, "Nathan"); + Student zachS = new Student(7, "Zach S"); + Student jeremy = new Student(8, "Jeremy"); + Student zachK = new Student(9, "Zach K"); + Student emmanuel = new Student(10, "Emmanuel"); + Student bobbi = new Student(11, "Bobbi"); + Student rex = new Student(12, "Rex"); + Student nishaben = new Student(13, "Nishaben"); + Student raymond = new Student(14, "Raymond"); + Student dipinti = new Student(15, "Dipinti"); + Student john = new Student(16, "John"); + Student tatiana = new Student(17, "Tatiana"); + Student laura = new Student(18, "Laura"); + + // When + boolean studentsIncludesSitara = students.contains(sitara); + boolean studentsIncludesNicholas = students.contains(nicholas); + boolean studentsIncludesDenee = students.contains(denee); + boolean studentsIncludesCharnae = students.contains(charnae); + boolean studentsIncludesJennifer = students.contains(jennifer); + boolean studentsIncludesNathan = students.contains(nathan); + boolean studentsIncludesZachS = students.contains(zachS); + boolean studentsIncludesJeremy = students.contains(jeremy); + boolean studentsIncludesZachK = students.contains(zachK); + boolean studentsIncludesEmmanuel = students.contains(emmanuel); + boolean studentsIncludesBobbi = students.contains(bobbi); + boolean studentsIncludesRex = students.contains(rex); + boolean studentsIncludesNishaben = students.contains(nishaben); + boolean studentsIncludesRaymond = students.contains(raymond); + boolean studentsIncludesDipinti = students.contains(dipinti); + boolean studentsIncludesJohn = students.contains(john); + boolean studentsIncludesTatiana = students.contains(tatiana); + boolean studentsIncludesLaura = students.contains(laura); + + // Then + Assert.assertTrue(studentsIncludesSitara); + Assert.assertTrue(studentsIncludesNicholas); + Assert.assertTrue(studentsIncludesDenee); + Assert.assertTrue(studentsIncludesCharnae); + Assert.assertTrue(studentsIncludesJennifer); + Assert.assertTrue(studentsIncludesNathan); + Assert.assertTrue(studentsIncludesZachS); + Assert.assertTrue(studentsIncludesJeremy); + Assert.assertTrue(studentsIncludesZachK); + Assert.assertTrue(studentsIncludesEmmanuel); + Assert.assertTrue(studentsIncludesBobbi); + Assert.assertTrue(studentsIncludesRex); + Assert.assertTrue(studentsIncludesNishaben); + Assert.assertTrue(studentsIncludesRaymond); + Assert.assertTrue(studentsIncludesDipinti); + Assert.assertTrue(studentsIncludesJohn); + Assert.assertTrue(studentsIncludesTatiana); + Assert.assertTrue(studentsIncludesLaura); + } +} diff --git a/src/test/java/io/zipcoder/interfaces/TestZipCodeWilmington.java b/src/test/java/io/zipcoder/interfaces/TestZipCodeWilmington.java new file mode 100644 index 00000000..f8423e4f --- /dev/null +++ b/src/test/java/io/zipcoder/interfaces/TestZipCodeWilmington.java @@ -0,0 +1,76 @@ +package io.zipcoder.interfaces; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.*; + +public class TestZipCodeWilmington { + + @Before + public void setUp() { + Students students = Students.getInstance(); + for (Student student : students.personList) { + student.totalStudyTime = 0; + } + Educator educator = Educator.LEON; + educator.timeWorked = 0; + } + + @Test + public void hostLectureTest_CheckStudentStudyTime() { + // Given + Students students = Students.getInstance(); + ZipCodeWilmington zipCodeWilmington = ZipCodeWilmington.getInstance(); + Integer expectedNewStudyTime = 3; + Integer hoursOfLecture = 54; + + // When + zipCodeWilmington.hostLecture(Educator.LEON, hoursOfLecture); + Map map = zipCodeWilmington.getStudyMap(); + + // Then +// Iterator iterator = students.iterator(); +// while (iterator.hasNext()) { +// Student student = (Student)iterator.next(); +// Double actualNewStudyTime = student.getTotalStudyTime(); +// Assert.assertEquals(expectedNewStudyTime, actualNewStudyTime, 0); +// } + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(1)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(2)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(3)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(4)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(5)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(6)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(7)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(8)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(9)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(10)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(11)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(12)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(13)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(14)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(15)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(16)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(17)), 0); + Assert.assertEquals(expectedNewStudyTime, map.get(students.findById(18)), 0); + + } + + @Test + public void hostLectureTest_CheckEducatorTeachingTime() { + // Given + Students students = Students.getInstance(); + ZipCodeWilmington zipCodeWilmington = ZipCodeWilmington.getInstance(); + Integer expectedNewTeachingTime = 54; + Integer hoursOfLecture = 54; + + // When + zipCodeWilmington.hostLecture(Educator.LEON, hoursOfLecture); + Double actualNewTeachingTime = Educator.LEON.timeWorked; + + // Then + Assert.assertEquals(expectedNewTeachingTime, actualNewTeachingTime, 0); + } +}