#34 InstructorStudentClassroom -part 9

Отворено
Skamath321 жели да споји 1 комит(е) из Skamath321/CR-MacroLabs-OOP-InstructorStudentClassroom:master у master
29 измењених фајлова са 1401 додато и 4 уклоњено
  1. 1
    0
      .idea/.name
  2. 16
    0
      .idea/compiler.xml
  3. 6
    0
      .idea/encodings.xml
  4. 13
    0
      .idea/libraries/Maven__junit_junit_4_12.xml
  5. 13
    0
      .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
  6. 13
    0
      .idea/misc.xml
  7. 8
    0
      .idea/modules.xml
  8. 124
    0
      .idea/uiDesigner.xml
  9. 6
    0
      .idea/vcs.xml
  10. 671
    0
      .idea/workspace.xml
  11. 3
    3
      README.md
  12. 16
    0
      interfaces-1.iml
  13. 13
    1
      pom.xml
  14. 45
    0
      src/main/java/io/zipcoder/interfaces/Educator.java
  15. 25
    0
      src/main/java/io/zipcoder/interfaces/Instructor.java
  16. 31
    0
      src/main/java/io/zipcoder/interfaces/Instructors.java
  17. 6
    0
      src/main/java/io/zipcoder/interfaces/Learner.java
  18. 28
    0
      src/main/java/io/zipcoder/interfaces/People.java
  19. 23
    0
      src/main/java/io/zipcoder/interfaces/Person.java
  20. 24
    0
      src/main/java/io/zipcoder/interfaces/Student.java
  21. 80
    0
      src/main/java/io/zipcoder/interfaces/Students.java
  22. 9
    0
      src/main/java/io/zipcoder/interfaces/Teacher.java
  23. 20
    0
      src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java
  24. 62
    0
      src/test/java/io/zipcoder/interfaces/InstructorTest.java
  25. 36
    0
      src/test/java/io/zipcoder/interfaces/PeopleTest.java
  26. 25
    0
      src/test/java/io/zipcoder/interfaces/StudentsTest.java
  27. 24
    0
      src/test/java/io/zipcoder/interfaces/TestPerson.java
  28. 38
    0
      src/test/java/io/zipcoder/interfaces/TestStudent.java
  29. 22
    0
      src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java

+ 1
- 0
.idea/.name Прегледај датотеку

@@ -0,0 +1 @@
1
+interfaces-1

+ 16
- 0
.idea/compiler.xml Прегледај датотеку

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="CompilerConfiguration">
4
+    <annotationProcessing>
5
+      <profile name="Maven default annotation processors profile" enabled="true">
6
+        <sourceOutputDir name="target/generated-sources/annotations" />
7
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
8
+        <outputRelativeToContentRoot value="true" />
9
+        <module name="interfaces-1" />
10
+      </profile>
11
+    </annotationProcessing>
12
+    <bytecodeTargetLevel>
13
+      <module name="interfaces-1" target="8" />
14
+    </bytecodeTargetLevel>
15
+  </component>
16
+</project>

+ 6
- 0
.idea/encodings.xml Прегледај датотеку

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Encoding">
4
+    <file url="file://$PROJECT_DIR$" charset="UTF-8" />
5
+  </component>
6
+</project>

+ 13
- 0
.idea/libraries/Maven__junit_junit_4_12.xml Прегледај датотеку

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: junit:junit:4.12">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml Прегледај датотеку

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: org.hamcrest:hamcrest-core:1.3">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/misc.xml Прегледај датотеку

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="MavenProjectsManager">
4
+    <option name="originalFiles">
5
+      <list>
6
+        <option value="$PROJECT_DIR$/pom.xml" />
7
+      </list>
8
+    </option>
9
+  </component>
10
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
11
+    <output url="file://$PROJECT_DIR$/classes" />
12
+  </component>
13
+</project>

+ 8
- 0
.idea/modules.xml Прегледај датотеку

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/interfaces-1.iml" filepath="$PROJECT_DIR$/interfaces-1.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 124
- 0
.idea/uiDesigner.xml Прегледај датотеку

@@ -0,0 +1,124 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Palette2">
4
+    <group name="Swing">
5
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
6
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
7
+      </item>
8
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
9
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
10
+      </item>
11
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
12
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
13
+      </item>
14
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
15
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
16
+      </item>
17
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
18
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
19
+        <initial-values>
20
+          <property name="text" value="Button" />
21
+        </initial-values>
22
+      </item>
23
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
24
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
25
+        <initial-values>
26
+          <property name="text" value="RadioButton" />
27
+        </initial-values>
28
+      </item>
29
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
30
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
31
+        <initial-values>
32
+          <property name="text" value="CheckBox" />
33
+        </initial-values>
34
+      </item>
35
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
36
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
37
+        <initial-values>
38
+          <property name="text" value="Label" />
39
+        </initial-values>
40
+      </item>
41
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
42
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
43
+          <preferred-size width="150" height="-1" />
44
+        </default-constraints>
45
+      </item>
46
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
47
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
48
+          <preferred-size width="150" height="-1" />
49
+        </default-constraints>
50
+      </item>
51
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
52
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
53
+          <preferred-size width="150" height="-1" />
54
+        </default-constraints>
55
+      </item>
56
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
57
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
58
+          <preferred-size width="150" height="50" />
59
+        </default-constraints>
60
+      </item>
61
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
62
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
63
+          <preferred-size width="150" height="50" />
64
+        </default-constraints>
65
+      </item>
66
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
67
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
68
+          <preferred-size width="150" height="50" />
69
+        </default-constraints>
70
+      </item>
71
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
72
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
73
+      </item>
74
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
75
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
76
+          <preferred-size width="150" height="50" />
77
+        </default-constraints>
78
+      </item>
79
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
80
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
81
+          <preferred-size width="150" height="50" />
82
+        </default-constraints>
83
+      </item>
84
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
85
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
86
+          <preferred-size width="150" height="50" />
87
+        </default-constraints>
88
+      </item>
89
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
90
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
91
+          <preferred-size width="200" height="200" />
92
+        </default-constraints>
93
+      </item>
94
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
95
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
96
+          <preferred-size width="200" height="200" />
97
+        </default-constraints>
98
+      </item>
99
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
100
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
101
+      </item>
102
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
103
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
104
+      </item>
105
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
106
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
107
+      </item>
108
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
109
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
110
+      </item>
111
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
112
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
113
+          <preferred-size width="-1" height="20" />
114
+        </default-constraints>
115
+      </item>
116
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
117
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
118
+      </item>
119
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
120
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
121
+      </item>
122
+    </group>
123
+  </component>
124
+</project>

+ 6
- 0
.idea/vcs.xml Прегледај датотеку

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 671
- 0
.idea/workspace.xml Прегледај датотеку

@@ -0,0 +1,671 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="63e596ef-ca04-44a3-bb3a-c2f729c2ef88" name="Default Changelist" comment="">
5
+      <change afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
6
+      <change afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
7
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__junit_junit_4_12.xml" afterDir="false" />
8
+      <change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml" afterDir="false" />
9
+      <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
10
+      <change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
11
+      <change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
12
+      <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
13
+      <change afterPath="$PROJECT_DIR$/interfaces-1.iml" afterDir="false" />
14
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java" afterDir="false" />
15
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" afterDir="false" />
16
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java" afterDir="false" />
17
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java" afterDir="false" />
18
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" afterDir="false" />
19
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" afterDir="false" />
20
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" afterDir="false" />
21
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" afterDir="false" />
22
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java" afterDir="false" />
23
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java" afterDir="false" />
24
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" afterDir="false" />
25
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentsTest.java" afterDir="false" />
26
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestStudent.java" afterDir="false" />
27
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java" afterDir="false" />
28
+      <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
29
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
30
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" afterDir="false" />
31
+      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" afterDir="false" />
32
+    </list>
33
+    <ignored path="$PROJECT_DIR$/target/" />
34
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
35
+    <option name="SHOW_DIALOG" value="false" />
36
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
37
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
38
+    <option name="LAST_RESOLUTION" value="IGNORE" />
39
+  </component>
40
+  <component name="FUSProjectUsageTrigger">
41
+    <session id="-2037887790">
42
+      <usages-collector id="statistics.lifecycle.project">
43
+        <counts>
44
+          <entry key="project.closed" value="2" />
45
+          <entry key="project.open.time.0" value="1" />
46
+          <entry key="project.open.time.1" value="1" />
47
+          <entry key="project.open.time.17" value="1" />
48
+          <entry key="project.opened" value="3" />
49
+        </counts>
50
+      </usages-collector>
51
+      <usages-collector id="statistics.file.extensions.open">
52
+        <counts>
53
+          <entry key="java" value="32" />
54
+        </counts>
55
+      </usages-collector>
56
+      <usages-collector id="statistics.file.types.open">
57
+        <counts>
58
+          <entry key="JAVA" value="32" />
59
+        </counts>
60
+      </usages-collector>
61
+      <usages-collector id="statistics.file.extensions.edit">
62
+        <counts>
63
+          <entry key="dummy" value="4" />
64
+          <entry key="java" value="3116" />
65
+        </counts>
66
+      </usages-collector>
67
+      <usages-collector id="statistics.file.types.edit">
68
+        <counts>
69
+          <entry key="JAVA" value="3116" />
70
+          <entry key="PLAIN_TEXT" value="4" />
71
+        </counts>
72
+      </usages-collector>
73
+    </session>
74
+  </component>
75
+  <component name="FileEditorManager">
76
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
77
+      <file pinned="false" current-in-tab="false">
78
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java">
79
+          <provider selected="true" editor-type-id="text-editor">
80
+            <state relative-caret-position="30">
81
+              <caret line="2" column="25" selection-start-line="2" selection-start-column="25" selection-end-line="2" selection-end-column="25" />
82
+            </state>
83
+          </provider>
84
+        </entry>
85
+      </file>
86
+      <file pinned="false" current-in-tab="false">
87
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java">
88
+          <provider selected="true" editor-type-id="text-editor">
89
+            <state relative-caret-position="150">
90
+              <caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
91
+            </state>
92
+          </provider>
93
+        </entry>
94
+      </file>
95
+      <file pinned="false" current-in-tab="false">
96
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java">
97
+          <provider selected="true" editor-type-id="text-editor">
98
+            <state relative-caret-position="233">
99
+              <caret line="22" column="22" lean-forward="true" selection-start-line="22" selection-start-column="22" selection-end-line="22" selection-end-column="22" />
100
+              <folding>
101
+                <element signature="e#735#736#0" expanded="true" />
102
+                <element signature="e#766#767#0" expanded="true" />
103
+              </folding>
104
+            </state>
105
+          </provider>
106
+        </entry>
107
+      </file>
108
+      <file pinned="false" current-in-tab="false">
109
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java">
110
+          <provider selected="true" editor-type-id="text-editor">
111
+            <state relative-caret-position="225">
112
+              <caret line="15" column="35" lean-forward="true" selection-start-line="15" selection-start-column="35" selection-end-line="15" selection-end-column="35" />
113
+            </state>
114
+          </provider>
115
+        </entry>
116
+      </file>
117
+      <file pinned="false" current-in-tab="true">
118
+        <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java">
119
+          <provider selected="true" editor-type-id="text-editor">
120
+            <state relative-caret-position="285">
121
+              <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
122
+            </state>
123
+          </provider>
124
+        </entry>
125
+      </file>
126
+      <file pinned="false" current-in-tab="false">
127
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
128
+          <provider selected="true" editor-type-id="text-editor">
129
+            <state relative-caret-position="120">
130
+              <caret line="8" column="5" lean-forward="true" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" />
131
+              <folding>
132
+                <element signature="e#152#153#0" expanded="true" />
133
+                <element signature="e#177#178#0" expanded="true" />
134
+                <element signature="e#214#215#0" expanded="true" />
135
+                <element signature="e#239#240#0" expanded="true" />
136
+                <element signature="e#241#242#0" expanded="true" />
137
+                <element signature="e#289#290#0" expanded="true" />
138
+              </folding>
139
+            </state>
140
+          </provider>
141
+        </entry>
142
+      </file>
143
+      <file pinned="false" current-in-tab="false">
144
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java">
145
+          <provider selected="true" editor-type-id="text-editor">
146
+            <state relative-caret-position="25">
147
+              <caret line="7" column="32" lean-forward="true" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" />
148
+              <folding>
149
+                <element signature="e#450#451#0" expanded="true" />
150
+                <element signature="e#483#484#0" expanded="true" />
151
+                <element signature="e#510#511#0" expanded="true" />
152
+                <element signature="e#535#536#0" expanded="true" />
153
+                <element signature="e#566#567#0" expanded="true" />
154
+                <element signature="e#593#594#0" expanded="true" />
155
+              </folding>
156
+            </state>
157
+          </provider>
158
+        </entry>
159
+      </file>
160
+    </leaf>
161
+  </component>
162
+  <component name="FileTemplateManagerImpl">
163
+    <option name="RECENT_TEMPLATES">
164
+      <list>
165
+        <option value="Interface" />
166
+        <option value="Class" />
167
+      </list>
168
+    </option>
169
+  </component>
170
+  <component name="FindInProjectRecents">
171
+    <findStrings>
172
+      <find>forEach</find>
173
+    </findStrings>
174
+  </component>
175
+  <component name="Git.Settings">
176
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
177
+  </component>
178
+  <component name="IdeDocumentHistory">
179
+    <option name="CHANGED_PATHS">
180
+      <list>
181
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" />
182
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java" />
183
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" />
184
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/Instructor.java" />
185
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestStudent.java" />
186
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java" />
187
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" />
188
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" />
189
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" />
190
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" />
191
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" />
192
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentsTest.java" />
193
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java" />
194
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" />
195
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java" />
196
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java" />
197
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java" />
198
+      </list>
199
+    </option>
200
+  </component>
201
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
202
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
203
+  <component name="JsGulpfileManager">
204
+    <detection-done>true</detection-done>
205
+    <sorting>DEFINITION_ORDER</sorting>
206
+  </component>
207
+  <component name="ProjectFrameBounds" fullScreen="true">
208
+    <option name="width" value="1280" />
209
+    <option name="height" value="800" />
210
+  </component>
211
+  <component name="ProjectInspectionProfilesVisibleTreeState">
212
+    <entry key="Project Default">
213
+      <profile-state>
214
+        <expanded-state>
215
+          <State />
216
+          <State>
217
+            <id>Android</id>
218
+          </State>
219
+          <State>
220
+            <id>CorrectnessLintAndroid</id>
221
+          </State>
222
+          <State>
223
+            <id>Java</id>
224
+          </State>
225
+          <State>
226
+            <id>Java language level migration aidsJava</id>
227
+          </State>
228
+          <State>
229
+            <id>LintAndroid</id>
230
+          </State>
231
+          <State>
232
+            <id>PerformanceLintAndroid</id>
233
+          </State>
234
+        </expanded-state>
235
+      </profile-state>
236
+    </entry>
237
+  </component>
238
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
239
+  <component name="ProjectView">
240
+    <navigator proportions="" version="1">
241
+      <foldersAlwaysOnTop value="true" />
242
+    </navigator>
243
+    <panes>
244
+      <pane id="ProjectPane">
245
+        <subPane>
246
+          <expand>
247
+            <path>
248
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
249
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
250
+            </path>
251
+            <path>
252
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
253
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
254
+              <item name="src" type="462c0819:PsiDirectoryNode" />
255
+            </path>
256
+            <path>
257
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
258
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
259
+              <item name="src" type="462c0819:PsiDirectoryNode" />
260
+              <item name="main" type="462c0819:PsiDirectoryNode" />
261
+            </path>
262
+            <path>
263
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
264
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
265
+              <item name="src" type="462c0819:PsiDirectoryNode" />
266
+              <item name="main" type="462c0819:PsiDirectoryNode" />
267
+              <item name="java" type="462c0819:PsiDirectoryNode" />
268
+            </path>
269
+            <path>
270
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
271
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
272
+              <item name="src" type="462c0819:PsiDirectoryNode" />
273
+              <item name="main" type="462c0819:PsiDirectoryNode" />
274
+              <item name="java" type="462c0819:PsiDirectoryNode" />
275
+              <item name="interfaces" type="462c0819:PsiDirectoryNode" />
276
+            </path>
277
+            <path>
278
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
279
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
280
+              <item name="src" type="462c0819:PsiDirectoryNode" />
281
+              <item name="test" type="462c0819:PsiDirectoryNode" />
282
+            </path>
283
+            <path>
284
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
285
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
286
+              <item name="src" type="462c0819:PsiDirectoryNode" />
287
+              <item name="test" type="462c0819:PsiDirectoryNode" />
288
+              <item name="java" type="462c0819:PsiDirectoryNode" />
289
+            </path>
290
+            <path>
291
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
292
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
293
+              <item name="src" type="462c0819:PsiDirectoryNode" />
294
+              <item name="test" type="462c0819:PsiDirectoryNode" />
295
+              <item name="java" type="462c0819:PsiDirectoryNode" />
296
+              <item name="interfaces" type="462c0819:PsiDirectoryNode" />
297
+            </path>
298
+          </expand>
299
+          <select />
300
+        </subPane>
301
+      </pane>
302
+      <pane id="Scope" />
303
+      <pane id="PackagesPane" />
304
+    </panes>
305
+  </component>
306
+  <component name="PropertiesComponent">
307
+    <property name="WebServerToolWindowFactoryState" value="false" />
308
+    <property name="aspect.path.notification.shown" value="true" />
309
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1542481891023" />
310
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
311
+    <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
312
+    <property name="nodejs_npm_path_reset_for_default_project" value="true" />
313
+    <property name="settings.editor.selected.configurable" value="Errors" />
314
+  </component>
315
+  <component name="RunDashboard">
316
+    <option name="ruleStates">
317
+      <list>
318
+        <RuleState>
319
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
320
+        </RuleState>
321
+        <RuleState>
322
+          <option name="name" value="StatusDashboardGroupingRule" />
323
+        </RuleState>
324
+      </list>
325
+    </option>
326
+  </component>
327
+  <component name="RunManager" selected="JUnit.ZipCodeWilmingtonTest.testHostLecture">
328
+    <configuration name="InstructorTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
329
+      <module name="interfaces-1" />
330
+      <extension name="coverage">
331
+        <pattern>
332
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
333
+          <option name="ENABLED" value="true" />
334
+        </pattern>
335
+      </extension>
336
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
337
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.InstructorTest" />
338
+      <method v="2">
339
+        <option name="Make" enabled="true" />
340
+      </method>
341
+    </configuration>
342
+    <configuration name="InstructorTest.testLecture" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
343
+      <module name="interfaces-1" />
344
+      <extension name="coverage">
345
+        <pattern>
346
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
347
+          <option name="ENABLED" value="true" />
348
+        </pattern>
349
+      </extension>
350
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
351
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.InstructorTest" />
352
+      <option name="METHOD_NAME" value="testLecture" />
353
+      <option name="TEST_OBJECT" value="method" />
354
+      <method v="2">
355
+        <option name="Make" enabled="true" />
356
+      </method>
357
+    </configuration>
358
+    <configuration name="PeopleTest.testFindById" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
359
+      <module name="interfaces-1" />
360
+      <extension name="coverage">
361
+        <pattern>
362
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
363
+          <option name="ENABLED" value="true" />
364
+        </pattern>
365
+      </extension>
366
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
367
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.PeopleTest" />
368
+      <option name="METHOD_NAME" value="testFindById" />
369
+      <option name="TEST_OBJECT" value="method" />
370
+      <method v="2">
371
+        <option name="Make" enabled="true" />
372
+      </method>
373
+    </configuration>
374
+    <configuration name="StudentsTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
375
+      <module name="interfaces-1" />
376
+      <extension name="coverage">
377
+        <pattern>
378
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
379
+          <option name="ENABLED" value="true" />
380
+        </pattern>
381
+      </extension>
382
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
383
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.StudentsTest" />
384
+      <method v="2">
385
+        <option name="Make" enabled="true" />
386
+      </method>
387
+    </configuration>
388
+    <configuration name="ZipCodeWilmingtonTest.testHostLecture" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
389
+      <module name="interfaces-1" />
390
+      <extension name="coverage">
391
+        <pattern>
392
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
393
+          <option name="ENABLED" value="true" />
394
+        </pattern>
395
+      </extension>
396
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
397
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.ZipCodeWilmingtonTest" />
398
+      <option name="METHOD_NAME" value="testHostLecture" />
399
+      <option name="TEST_OBJECT" value="method" />
400
+      <method v="2">
401
+        <option name="Make" enabled="true" />
402
+      </method>
403
+    </configuration>
404
+    <list>
405
+      <item itemvalue="JUnit.InstructorTest.testLecture" />
406
+      <item itemvalue="JUnit.InstructorTest" />
407
+      <item itemvalue="JUnit.PeopleTest.testFindById" />
408
+      <item itemvalue="JUnit.StudentsTest" />
409
+      <item itemvalue="JUnit.ZipCodeWilmingtonTest.testHostLecture" />
410
+    </list>
411
+    <recent_temporary>
412
+      <list>
413
+        <item itemvalue="JUnit.ZipCodeWilmingtonTest.testHostLecture" />
414
+        <item itemvalue="JUnit.StudentsTest" />
415
+        <item itemvalue="JUnit.PeopleTest.testFindById" />
416
+        <item itemvalue="JUnit.InstructorTest" />
417
+        <item itemvalue="JUnit.InstructorTest.testLecture" />
418
+      </list>
419
+    </recent_temporary>
420
+  </component>
421
+  <component name="SvnConfiguration">
422
+    <configuration />
423
+  </component>
424
+  <component name="TaskManager">
425
+    <task active="true" id="Default" summary="Default task">
426
+      <changelist id="63e596ef-ca04-44a3-bb3a-c2f729c2ef88" name="Default Changelist" comment="" />
427
+      <created>1542219722864</created>
428
+      <option name="number" value="Default" />
429
+      <option name="presentableId" value="Default" />
430
+      <updated>1542219722864</updated>
431
+      <workItem from="1542219724383" duration="14532000" />
432
+      <workItem from="1542308773682" duration="1041000" />
433
+      <workItem from="1542467270005" duration="5975000" />
434
+    </task>
435
+    <servers />
436
+  </component>
437
+  <component name="TestHistory">
438
+    <history-entry file="PeopleTest_testFindById - 2018.11.14 at 17h 45m 29s.xml">
439
+      <configuration name="PeopleTest.testFindById" configurationId="JUnit" />
440
+    </history-entry>
441
+    <history-entry file="PeopleTest_testFindById - 2018.11.17 at 10h 18m 24s.xml">
442
+      <configuration name="PeopleTest.testFindById" configurationId="JUnit" />
443
+    </history-entry>
444
+    <history-entry file="PeopleTest_testFindById - 2018.11.17 at 10h 19m 50s.xml">
445
+      <configuration name="PeopleTest.testFindById" configurationId="JUnit" />
446
+    </history-entry>
447
+    <history-entry file="PeopleTest_testFindById - 2018.11.17 at 10h 20m 48s.xml">
448
+      <configuration name="PeopleTest.testFindById" configurationId="JUnit" />
449
+    </history-entry>
450
+    <history-entry file="StudentsTest - 2018.11.17 at 10h 22m 26s.xml">
451
+      <configuration name="StudentsTest" configurationId="JUnit" />
452
+    </history-entry>
453
+    <history-entry file="ZipCodeWilmingtonTest_testHostLecture - 2018.11.17 at 14h 07m 47s.xml">
454
+      <configuration name="ZipCodeWilmingtonTest.testHostLecture" configurationId="JUnit" />
455
+    </history-entry>
456
+    <history-entry file="ZipCodeWilmingtonTest_testHostLecture - 2018.11.17 at 14h 08m 14s.xml">
457
+      <configuration name="ZipCodeWilmingtonTest.testHostLecture" configurationId="JUnit" />
458
+    </history-entry>
459
+    <history-entry file="ZipCodeWilmingtonTest_testHostLecture - 2018.11.17 at 14h 08m 41s.xml">
460
+      <configuration name="ZipCodeWilmingtonTest.testHostLecture" configurationId="JUnit" />
461
+    </history-entry>
462
+    <history-entry file="ZipCodeWilmingtonTest_testHostLecture - 2018.11.17 at 14h 08m 50s.xml">
463
+      <configuration name="ZipCodeWilmingtonTest.testHostLecture" configurationId="JUnit" />
464
+    </history-entry>
465
+    <history-entry file="ZipCodeWilmingtonTest_testHostLecture - 2018.11.17 at 14h 11m 02s.xml">
466
+      <configuration name="ZipCodeWilmingtonTest.testHostLecture" configurationId="JUnit" />
467
+    </history-entry>
468
+  </component>
469
+  <component name="TimeTrackingManager">
470
+    <option name="totallyTimeSpent" value="21548000" />
471
+  </component>
472
+  <component name="ToolWindowManager">
473
+    <frame x="0" y="0" width="1280" height="800" extended-state="0" />
474
+    <editor active="true" />
475
+    <layout>
476
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25767368" />
477
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
478
+      <window_info id="Designer" order="2" />
479
+      <window_info id="Image Layers" order="3" />
480
+      <window_info id="Capture Tool" order="4" />
481
+      <window_info id="UI Designer" order="5" />
482
+      <window_info id="Learn" order="6" />
483
+      <window_info id="Favorites" order="7" side_tool="true" />
484
+      <window_info anchor="bottom" id="Message" order="0" />
485
+      <window_info anchor="bottom" id="Find" order="1" weight="0.32876712" />
486
+      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32876712" />
487
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
488
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
489
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
490
+      <window_info anchor="bottom" id="TODO" order="6" />
491
+      <window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
492
+      <window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
493
+      <window_info anchor="bottom" id="Terminal" order="9" />
494
+      <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
495
+      <window_info anchor="bottom" id="Messages" order="11" weight="0.32876712" />
496
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
497
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
498
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
499
+      <window_info anchor="right" id="Palette" order="3" />
500
+      <window_info anchor="right" id="Capture Analysis" order="4" />
501
+      <window_info anchor="right" id="Database" order="5" />
502
+      <window_info anchor="right" id="Theme Preview" order="6" />
503
+      <window_info anchor="right" id="Palette&#9;" order="7" />
504
+      <window_info anchor="right" id="Maven Projects" order="8" />
505
+    </layout>
506
+  </component>
507
+  <component name="TypeScriptGeneratedFilesManager">
508
+    <option name="version" value="1" />
509
+  </component>
510
+  <component name="VcsContentAnnotationSettings">
511
+    <option name="myLimit" value="2678400000" />
512
+  </component>
513
+  <component name="editorHistoryManager">
514
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/lib/src.zip!/java.base/java/util/stream/Stream.java">
515
+      <provider selected="true" editor-type-id="text-editor">
516
+        <state relative-caret-position="138">
517
+          <caret line="665" column="16" selection-start-line="665" selection-start-column="9" selection-end-line="665" selection-end-column="16" />
518
+        </state>
519
+      </provider>
520
+    </entry>
521
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java">
522
+      <provider selected="true" editor-type-id="text-editor">
523
+        <state relative-caret-position="339">
524
+          <caret line="26" column="5" selection-start-line="26" selection-start-column="5" selection-end-line="26" selection-end-column="5" />
525
+        </state>
526
+      </provider>
527
+    </entry>
528
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/lib/src.zip!/java.base/java/util/function/Consumer.java">
529
+      <provider selected="true" editor-type-id="text-editor">
530
+        <state relative-caret-position="330">
531
+          <caret line="48" column="9" selection-start-line="48" selection-start-column="9" selection-end-line="48" selection-end-column="9" />
532
+        </state>
533
+      </provider>
534
+    </entry>
535
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java">
536
+      <provider selected="true" editor-type-id="text-editor">
537
+        <state relative-caret-position="30">
538
+          <caret line="2" column="17" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
539
+        </state>
540
+      </provider>
541
+    </entry>
542
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestStudent.java">
543
+      <provider selected="true" editor-type-id="text-editor">
544
+        <state relative-caret-position="435">
545
+          <caret line="29" column="8" lean-forward="true" selection-start-line="29" selection-start-column="8" selection-end-line="29" selection-end-column="41" />
546
+        </state>
547
+      </provider>
548
+    </entry>
549
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java">
550
+      <provider selected="true" editor-type-id="text-editor">
551
+        <state relative-caret-position="233">
552
+          <caret line="54" column="16" selection-start-line="54" selection-start-column="16" selection-end-line="54" selection-end-column="16" />
553
+          <folding>
554
+            <element signature="imports" expanded="true" />
555
+          </folding>
556
+        </state>
557
+      </provider>
558
+    </entry>
559
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java">
560
+      <provider selected="true" editor-type-id="text-editor">
561
+        <state relative-caret-position="120">
562
+          <caret line="9" column="22" selection-start-line="9" selection-start-column="22" selection-end-line="9" selection-end-column="22" />
563
+          <folding>
564
+            <element signature="e#153#154#0" expanded="true" />
565
+            <element signature="e#178#179#0" expanded="true" />
566
+          </folding>
567
+        </state>
568
+      </provider>
569
+    </entry>
570
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentsTest.java">
571
+      <provider selected="true" editor-type-id="text-editor">
572
+        <state relative-caret-position="285">
573
+          <caret line="19" column="18" selection-start-line="19" selection-start-column="18" selection-end-line="19" selection-end-column="18" />
574
+        </state>
575
+      </provider>
576
+    </entry>
577
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java">
578
+      <provider selected="true" editor-type-id="text-editor">
579
+        <state relative-caret-position="194">
580
+          <caret line="20" column="30" selection-start-line="20" selection-start-column="30" selection-end-line="20" selection-end-column="30" />
581
+          <folding>
582
+            <element signature="imports" expanded="true" />
583
+          </folding>
584
+        </state>
585
+      </provider>
586
+    </entry>
587
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java">
588
+      <provider selected="true" editor-type-id="text-editor">
589
+        <state relative-caret-position="223">
590
+          <caret line="17" column="23" selection-start-line="17" selection-start-column="23" selection-end-line="17" selection-end-column="23" />
591
+        </state>
592
+      </provider>
593
+    </entry>
594
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java">
595
+      <provider selected="true" editor-type-id="text-editor">
596
+        <state relative-caret-position="174">
597
+          <caret line="58" column="26" selection-start-line="58" selection-start-column="26" selection-end-line="58" selection-end-column="26" />
598
+        </state>
599
+      </provider>
600
+    </entry>
601
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java">
602
+      <provider selected="true" editor-type-id="text-editor">
603
+        <state relative-caret-position="150">
604
+          <caret line="10" column="4" selection-start-line="10" selection-start-column="4" selection-end-line="10" selection-end-column="4" />
605
+        </state>
606
+      </provider>
607
+    </entry>
608
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Educator.java">
609
+      <provider selected="true" editor-type-id="text-editor">
610
+        <state relative-caret-position="25">
611
+          <caret line="7" column="32" lean-forward="true" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" />
612
+          <folding>
613
+            <element signature="e#450#451#0" expanded="true" />
614
+            <element signature="e#483#484#0" expanded="true" />
615
+            <element signature="e#510#511#0" expanded="true" />
616
+            <element signature="e#535#536#0" expanded="true" />
617
+            <element signature="e#566#567#0" expanded="true" />
618
+            <element signature="e#593#594#0" expanded="true" />
619
+          </folding>
620
+        </state>
621
+      </provider>
622
+    </entry>
623
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
624
+      <provider selected="true" editor-type-id="text-editor">
625
+        <state relative-caret-position="120">
626
+          <caret line="8" column="5" lean-forward="true" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" />
627
+          <folding>
628
+            <element signature="e#152#153#0" expanded="true" />
629
+            <element signature="e#177#178#0" expanded="true" />
630
+            <element signature="e#214#215#0" expanded="true" />
631
+            <element signature="e#239#240#0" expanded="true" />
632
+            <element signature="e#241#242#0" expanded="true" />
633
+            <element signature="e#289#290#0" expanded="true" />
634
+          </folding>
635
+        </state>
636
+      </provider>
637
+    </entry>
638
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructors.java">
639
+      <provider selected="true" editor-type-id="text-editor">
640
+        <state relative-caret-position="233">
641
+          <caret line="22" column="22" lean-forward="true" selection-start-line="22" selection-start-column="22" selection-end-line="22" selection-end-column="22" />
642
+          <folding>
643
+            <element signature="e#735#736#0" expanded="true" />
644
+            <element signature="e#766#767#0" expanded="true" />
645
+          </folding>
646
+        </state>
647
+      </provider>
648
+    </entry>
649
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java">
650
+      <provider selected="true" editor-type-id="text-editor">
651
+        <state relative-caret-position="30">
652
+          <caret line="2" column="25" selection-start-line="2" selection-start-column="25" selection-end-line="2" selection-end-column="25" />
653
+        </state>
654
+      </provider>
655
+    </entry>
656
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java">
657
+      <provider selected="true" editor-type-id="text-editor">
658
+        <state relative-caret-position="225">
659
+          <caret line="15" column="35" lean-forward="true" selection-start-line="15" selection-start-column="35" selection-end-line="15" selection-end-column="35" />
660
+        </state>
661
+      </provider>
662
+    </entry>
663
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java">
664
+      <provider selected="true" editor-type-id="text-editor">
665
+        <state relative-caret-position="285">
666
+          <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
667
+        </state>
668
+      </provider>
669
+    </entry>
670
+  </component>
671
+</project>

+ 3
- 3
README.md Прегледај датотеку

@@ -184,15 +184,15 @@
184 184
 
185 185
 -
186 186
 # Notice the Design Flaw - Non-Intuitive Orientation
187
-* You may have noticed that `findById` makes it difficult to intuitively identify _which_ `Person` object is being returned. To remedy this issue, we can make use of an `enum` which manipulates a composite `instructor` object.
187
+* You may have noticed that `findById` makes it difficult to intuitively identify _which_ `Person` object is being returned. To remedy this issue, we can make use of an `enum` which manipulates a composite `instructorTest` object.
188 188
 
189 189
 -
190 190
 ### Part 11.1 - Create `Educator` enum
191 191
 * Create an enum named `Educator`.
192 192
 	* The enum should implement `Teacher`.
193 193
 	* The enum should have an enumeration for each of the instructors represented in the `Instructors` class.
194
-	* Upon construction each enumeration of the enum should instantiate a respective `Instructor` and assign it to a final `instructor` field upon construction. The `instructor` should be added to the `Instructors` singleton.
195
-	* Calls to the `teach` and `lecture` method should be differed to the composite `instructor` reference.
194
+	* Upon construction each enumeration of the enum should instantiate a respective `Instructor` and assign it to a final `instructorTest` field upon construction. The `instructorTest` should be added to the `Instructors` singleton.
195
+	* Calls to the `teach` and `lecture` method should be differed to the composite `instructorTest` reference.
196 196
 	* The enum should have a `double timeWorked` field which keeps track of the hours that the `Educator` has taught.
197 197
 
198 198
 -

+ 16
- 0
interfaces-1.iml Прегледај датотеку

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
4
+    <output url="file://$MODULE_DIR$/target/classes" />
5
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
6
+    <content url="file://$MODULE_DIR$">
7
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
9
+      <excludeFolder url="file://$MODULE_DIR$/target" />
10
+    </content>
11
+    <orderEntry type="inheritedJdk" />
12
+    <orderEntry type="sourceFolder" forTests="false" />
13
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
14
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
15
+  </component>
16
+</module>

+ 13
- 1
pom.xml Прегледај датотеку

@@ -5,7 +5,19 @@
5 5
   <groupId>io.zipcoder</groupId>
6 6
   <artifactId>interfaces-1</artifactId>
7 7
   <version>0.0.1-SNAPSHOT</version>
8
-  <packaging>jar</packaging>
8
+    <build>
9
+        <plugins>
10
+            <plugin>
11
+                <groupId>org.apache.maven.plugins</groupId>
12
+                <artifactId>maven-compiler-plugin</artifactId>
13
+                <configuration>
14
+                    <source>8</source>
15
+                    <target>8</target>
16
+                </configuration>
17
+            </plugin>
18
+        </plugins>
19
+    </build>
20
+    <packaging>jar</packaging>
9 21
 
10 22
   <name>interfaces-1</name>
11 23
   <url>http://maven.apache.org</url>

+ 45
- 0
src/main/java/io/zipcoder/interfaces/Educator.java Прегледај датотеку

@@ -0,0 +1,45 @@
1
+package io.zipcoder.interfaces;
2
+
3
+public enum Educator implements Teacher {
4
+    KRIS(1, "Kris Younger"),
5
+    NHU(2, "Nhu Nguyen"),
6
+    FROILAN(3, "Froilan Miranda"),
7
+    WILHEM(4, "Wilhem Alcivar"),
8
+    DOLIO(5, "L. Dolio Durant");
9
+
10
+
11
+    private double timeWorked = 0;
12
+    private long id;
13
+    private String name;
14
+
15
+    Educator(long id, String name) {
16
+        this.id = id;
17
+        this.name = name;
18
+    }
19
+
20
+    public double getTimeWorked() {
21
+        return timeWorked;
22
+    }
23
+
24
+    public long getId() {
25
+        return id;
26
+    }
27
+
28
+    public String getName() {
29
+        return name;
30
+    }
31
+
32
+    @Override
33
+    public void teach(Learner learner, double numberOfHours) {
34
+        learner.learn(numberOfHours);
35
+        timeWorked += numberOfHours;
36
+    }
37
+
38
+    @Override
39
+    public void lecture(Learner[] learners, double numberOfHours) {
40
+        for (Learner learner : learners) {
41
+            learner.learn(numberOfHours/learners.length);
42
+        }
43
+        timeWorked += numberOfHours;
44
+    }
45
+}

+ 25
- 0
src/main/java/io/zipcoder/interfaces/Instructor.java Прегледај датотеку

@@ -0,0 +1,25 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import java.util.stream.*;
4
+
5
+public class Instructor extends Person implements Teacher {
6
+
7
+    public Instructor(long id){
8
+        super(id);
9
+    }
10
+
11
+    public Instructor(long id, String name){
12
+        super(id, name);
13
+    }
14
+    public void teach(Learner learner, double numberOfHours) {
15
+            learner.learn(numberOfHours);
16
+    }
17
+
18
+    public void lecture(Learner[] learners, double numberOfHours) {
19
+        Stream<Learner> learnerStream = Stream.of(learners);
20
+
21
+        learnerStream.forEach((student) -> student.learn(numberOfHours));
22
+    }
23
+
24
+
25
+}

+ 31
- 0
src/main/java/io/zipcoder/interfaces/Instructors.java Прегледај датотеку

@@ -0,0 +1,31 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import java.util.Arrays;
4
+
5
+public final class Instructors extends People<Instructor> {
6
+
7
+    private final static Instructors INSTANCE = new Instructors();
8
+    Educator[] educatorValues = Educator.values();
9
+
10
+    private Instructors() {
11
+        for (Educator e : educatorValues) {
12
+            personList.add(new Instructor(e.getId(), e.getName()));
13
+        }
14
+    }
15
+
16
+    public static Instructors getInstance() {
17
+        return INSTANCE;
18
+    }
19
+
20
+    @Override
21
+    public Instructor[] getArray() {
22
+        Instructor[] instructors = new Instructor[personList.size()];
23
+        int count = 0;
24
+
25
+        for (Instructor instructor : personList) {
26
+            instructors[count] = instructor;
27
+            count++;
28
+        }
29
+        return instructors;
30
+    }
31
+}

+ 6
- 0
src/main/java/io/zipcoder/interfaces/Learner.java Прегледај датотеку

@@ -0,0 +1,6 @@
1
+package io.zipcoder.interfaces;
2
+
3
+public interface Learner {
4
+
5
+    void learn(double numberOfHours);
6
+}

+ 28
- 0
src/main/java/io/zipcoder/interfaces/People.java Прегледај датотеку

@@ -0,0 +1,28 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import java.util.ArrayList;
4
+
5
+public abstract class People <E extends Person>{
6
+    ArrayList<E> personList = new ArrayList<E>();
7
+
8
+    public People() {
9
+
10
+    }
11
+
12
+    public void add(E p){
13
+        personList.add(p);
14
+    }
15
+
16
+    public Person findById(long i){
17
+
18
+        Person p = personList.stream()
19
+                .filter(person -> person.getId() == i)
20
+                .findFirst()
21
+                .get()
22
+                ;
23
+
24
+        return p;
25
+    }
26
+
27
+    public abstract E[] getArray();
28
+}

+ 23
- 0
src/main/java/io/zipcoder/interfaces/Person.java Прегледај датотеку

@@ -1,5 +1,28 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3 3
 public class Person {
4
+    final long id;
5
+    String name;
4 6
 
7
+    public Person(long id) {
8
+
9
+        this.id = id;
10
+    }
11
+    
12
+    public Person(long id, String name) {
13
+        this.id = id;
14
+        this.name = name;
15
+    }
16
+
17
+    public long getId() {
18
+        return id;
19
+    }
20
+
21
+    public String getName() {
22
+        return name;
23
+    }
24
+
25
+    public void setName(String name) {
26
+        this.name = name;
27
+    }
5 28
 }

+ 24
- 0
src/main/java/io/zipcoder/interfaces/Student.java Прегледај датотеку

@@ -0,0 +1,24 @@
1
+package io.zipcoder.interfaces;
2
+
3
+public class Student extends Person implements Learner{
4
+    private double totalStudyTime;
5
+
6
+    public Student(long id) {
7
+        super(id);
8
+    }
9
+    public Student(long id, String name) {
10
+        super(id, name);
11
+    }
12
+
13
+    public void learn(double numberOfHours) {
14
+        totalStudyTime += numberOfHours;
15
+    }
16
+
17
+    public double getTotalStudyTime() {
18
+        return totalStudyTime;
19
+    }
20
+
21
+    public void setTotalStudyTime(double totalStudyTime) {
22
+        this.totalStudyTime = totalStudyTime;
23
+    }
24
+}

+ 80
- 0
src/main/java/io/zipcoder/interfaces/Students.java Прегледај датотеку

@@ -0,0 +1,80 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import java.util.ArrayList;
4
+
5
+public final class Students extends People<Student> {
6
+
7
+    private final static Students INSTANCE = new Students();
8
+
9
+    public Students() {
10
+        personList.add(new Student(1, "Ned Redmond"));
11
+        personList.add(new Student(2, "Seth Abrams"));
12
+        personList.add(new Student(3, "Akeem Cherry"));
13
+        personList.add(new Student(4, "Whitney Martinez"));
14
+        personList.add(new Student(5, "Nira Parikh"));
15
+        personList.add(new Student(6, "Connor Dunnigan"));
16
+        personList.add(new Student(7, "Christian Sheridan"));
17
+        personList.add(new Student(8, "Curtis Cook"));
18
+        personList.add(new Student(9, "Nuridalia Hernandez"));
19
+        personList.add(new Student(10, "Brandon DeFrancis"));
20
+        personList.add(new Student(11, "De'Jon Johnson"));
21
+        personList.add(new Student(12, "Demetrius Murray"));
22
+        personList.add(new Student(13, "Elliott Stansbury"));
23
+        personList.add(new Student(14, "Nathan Hall"));
24
+        personList.add(new Student(15, "Jae Joson"));
25
+        personList.add(new Student(16, "Jacob Anderson"));
26
+        personList.add(new Student(17, "Jose Bedolla"));
27
+        personList.add(new Student(18, "Jenn Chao"));
28
+        personList.add(new Student(19, "Jennifer Tinkler"));
29
+        personList.add(new Student(20, "Jonathan Hinds"));
30
+        personList.add(new Student(21, "Jay Samuels"));
31
+        personList.add(new Student(22, "Jevit Tith"));
32
+        personList.add(new Student(23, "Lauren Green"));
33
+        personList.add(new Student(24, "Kate Moore"));
34
+        personList.add(new Student(25, "Michelle DiMarino"));
35
+        personList.add(new Student(26, "Maggie Pierse"));
36
+        personList.add(new Student(27, "Nick Satinover"));
37
+        personList.add(new Student(28, "Chaitali Patel"));
38
+        personList.add(new Student(29, "Yesoda Sanka"));
39
+        personList.add(new Student(30, "Saurav Kamath"));
40
+        personList.add(new Student(31, "Sam Bhutani"));
41
+        personList.add(new Student(32, "Soujanya Buragapu"));
42
+        personList.add(new Student(33, "Steffon Williams"));
43
+        personList.add(new Student(34, "Zavon Malone"));
44
+        personList.add(new Student(35, "Thuy Kong"));
45
+        personList.add(new Student(36, "Thulasi Puppala"));
46
+        personList.add(new Student(37, "Trinh Tong"));
47
+        personList.add(new Student(38, "William Brown"));
48
+        personList.add(new Student(39, "Xzavia Cuello"));
49
+    }
50
+
51
+    public <E> Students(ArrayList<E> students) {
52
+
53
+    }
54
+
55
+    @Override
56
+    public Student findById(long i){
57
+
58
+        Student p = personList.stream()
59
+                .filter(person -> person.getId() == i)
60
+                .findFirst()
61
+                .get()
62
+                ;
63
+
64
+        return p;
65
+    }
66
+    public static Students getInstance() {
67
+        return INSTANCE;
68
+    }
69
+
70
+    @Override
71
+    public Student[] getArray() {
72
+        Student[] students = new Student[personList.size()];
73
+        int count = 0;
74
+        for (Student student : personList) {
75
+            students[count] = student;
76
+            count++;
77
+        }
78
+        return students;
79
+    }
80
+}

+ 9
- 0
src/main/java/io/zipcoder/interfaces/Teacher.java Прегледај датотеку

@@ -0,0 +1,9 @@
1
+package io.zipcoder.interfaces;
2
+
3
+public interface Teacher {
4
+
5
+    void teach(Learner learner, double numberOfHours);
6
+
7
+    void lecture(Learner[] learners, double numberOfHours);
8
+
9
+}

+ 20
- 0
src/main/java/io/zipcoder/interfaces/ZipCodeWilmington.java Прегледај датотеку

@@ -0,0 +1,20 @@
1
+package io.zipcoder.interfaces;
2
+
3
+public enum  ZipCodeWilmington {
4
+    INSTANCE;
5
+
6
+    Students students = Students.getInstance();
7
+    Instructors instructors = Instructors.getInstance();
8
+
9
+    public void hostLecture(Teacher teacher, double numberOfHours) {
10
+        Student[] studentsArray = students.getArray();
11
+        teacher.lecture(studentsArray, numberOfHours);
12
+    }
13
+
14
+    public void hostLecture(long id, double numberOfHours) {
15
+        Student[] studentsArray = students.getArray();
16
+        Teacher teacher = (Teacher) instructors.findById(id);
17
+        teacher.lecture(studentsArray, numberOfHours);
18
+
19
+    }
20
+}

+ 62
- 0
src/test/java/io/zipcoder/interfaces/InstructorTest.java Прегледај датотеку

@@ -0,0 +1,62 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.*;
4
+
5
+import java.util.Optional;
6
+import java.util.stream.Stream;
7
+
8
+
9
+public class InstructorTest {
10
+    Instructor instructor;
11
+    Student[] students;
12
+
13
+    @Before
14
+    public void setup(){
15
+        instructor = new Instructor(1);
16
+        students = new Student[]{new Student(0),new Student(1),new Student(2)};
17
+    }
18
+
19
+    @Test
20
+    public void testImplementation(){
21
+        //When
22
+        boolean actual = instructor instanceof Person;
23
+        //Then
24
+        Assert.assertTrue(actual);
25
+    }
26
+    @Test
27
+    public void testInheritence(){
28
+        //When
29
+        boolean actual = instructor instanceof Teacher;
30
+        //Then
31
+        Assert.assertTrue(actual);
32
+    }
33
+
34
+    @Test
35
+    public void testTeach(){
36
+        //Given
37
+        double expected = 1;
38
+        //When
39
+        instructor.teach(students[0], 1);
40
+        double actual = students[0].getTotalStudyTime();
41
+        //Then
42
+        Assert.assertEquals(expected, actual, 0);
43
+
44
+    }
45
+    @Test
46
+    public void testLecture(){
47
+        //Given
48
+        Double expected = 6d;
49
+        //When
50
+        instructor.lecture(students,2);
51
+        Double actual = Stream.of(students)
52
+                .map(Student::getTotalStudyTime)
53
+                .reduce((x,y) -> x + y)
54
+                .get()
55
+                ;
56
+        //Then
57
+        Assert.assertEquals(expected, actual, 0);
58
+
59
+    }
60
+
61
+
62
+}

+ 36
- 0
src/test/java/io/zipcoder/interfaces/PeopleTest.java Прегледај датотеку

@@ -0,0 +1,36 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.*;
4
+
5
+import java.util.ArrayList;
6
+import java.util.Arrays;
7
+
8
+public class PeopleTest {
9
+    Instructor instructor;
10
+    Student[] students;
11
+    Student john;
12
+    Student sarah;
13
+    Student bob;
14
+
15
+    @Before
16
+    public void setup(){
17
+        instructor = new Instructor(1);
18
+        bob = new Student(0);
19
+        john = new Student(1);
20
+        sarah = new Student(2);
21
+        students = new Student[]{bob,john,sarah};
22
+    }
23
+
24
+    @Test
25
+    public void testFindById(){
26
+        //Given
27
+        People people = new Students(new ArrayList<>(Arrays.asList(students)));
28
+        Person expected = sarah;
29
+
30
+        //When
31
+        Person actual = people.findById(2);
32
+
33
+        //Then
34
+        Assert.assertEquals(expected,actual);
35
+    }
36
+}

+ 25
- 0
src/test/java/io/zipcoder/interfaces/StudentsTest.java Прегледај датотеку

@@ -0,0 +1,25 @@
1
+package io.zipcoder.interfaces;
2
+import org.junit.*;
3
+
4
+public class StudentsTest {
5
+
6
+    @Test
7
+    public void testInitializationSetupStudents() {
8
+        Students students = Students.getInstance();
9
+        Person[] studentArray = students.getArray();
10
+
11
+        int actual = studentArray.length;
12
+        int expected = 39;
13
+
14
+        Assert.assertEquals(expected,actual);
15
+    }
16
+
17
+    @Test
18
+    public void testSingletonInstance() {
19
+        Students expected = Students.getInstance();
20
+        Students actual = Students.getInstance();
21
+
22
+        Assert.assertSame(expected, actual);
23
+    }
24
+
25
+}

+ 24
- 0
src/test/java/io/zipcoder/interfaces/TestPerson.java Прегледај датотеку

@@ -1,5 +1,29 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3
+import org.junit.*;
4
+
3 5
 public class TestPerson {
4 6
 
7
+    @Test
8
+    public void testConstructor(){
9
+        //Given
10
+        long expected = 1;
11
+        //When
12
+        Person person = new Person(1);
13
+        long actual = person.getId();
14
+        //Then
15
+        Assert.assertEquals(expected,actual);
16
+    }
17
+    @Test
18
+    public void testName(){
19
+        //Given
20
+        String expected = "Jawnny";
21
+        //When
22
+        Person person = new Person(1);
23
+        person.setName("Jawnny");
24
+        String actual = person.getName();
25
+        //Then
26
+        Assert.assertEquals(expected,actual);
27
+    }
28
+
5 29
 }

+ 38
- 0
src/test/java/io/zipcoder/interfaces/TestStudent.java Прегледај датотеку

@@ -0,0 +1,38 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.*;
4
+
5
+public class TestStudent {
6
+
7
+
8
+    @Test
9
+    public void testImplementation(){
10
+        //Given
11
+        Student student = new Student(1);
12
+        //When
13
+        Boolean actual = student instanceof Learner;
14
+        //Then
15
+        Assert.assertTrue(actual);
16
+    }
17
+    @Test
18
+    public void testInheritence(){
19
+        //Given
20
+        Student student = new Student(1);
21
+        //When
22
+        Boolean actual = student instanceof Learner;
23
+        //Then
24
+        Assert.assertTrue(actual);
25
+    }
26
+    @Test
27
+    public void testTeach(){
28
+        //Given
29
+        double expected = 25;
30
+        Student student = new Student(1);
31
+        //When
32
+        student.learn(25);
33
+        double actual = student.getTotalStudyTime();
34
+        //Then
35
+        Assert.assertEquals(expected,actual,0);
36
+    }
37
+
38
+}

+ 22
- 0
src/test/java/io/zipcoder/interfaces/ZipCodeWilmingtonTest.java Прегледај датотеку

@@ -0,0 +1,22 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.*;
4
+
5
+public class ZipCodeWilmingtonTest {
6
+
7
+    @Test
8
+    public void testHostLecture() {
9
+            ZipCodeWilmington zcw = ZipCodeWilmington.INSTANCE;
10
+            Student[] studentsArray = zcw.students.getArray();
11
+            Instructor[] instructorsArray = zcw.instructors.getArray();
12
+
13
+            double before = studentsArray[0].getTotalStudyTime();
14
+
15
+            zcw.hostLecture(instructorsArray[0], 400);
16
+               double after = studentsArray[0].getTotalStudyTime();
17
+                        Assert.assertTrue(after-before == 400);
18
+
19
+            }
20
+
21
+
22
+}