Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions src/main/java/com/dtcc/projects/ClassRoom.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.dtcc.projects;

import java.util.ArrayList;
import java.util.HashMap;

public class ClassRoom {

private static ArrayList<Student> students = JavaAcademy.getStudents();

private static ArrayList<Instructor> instructors = DelTech.getInstructors();

public static HashMap<String, Person> getRoster(){
HashMap<String, Person> roster = new HashMap<>();
for(Student student : students){
roster.put(student.getName(), student);
}
for(Instructor instructor : instructors){
roster.put(instructor.getName(), instructor);
}
return roster;
}


}
27 changes: 27 additions & 0 deletions src/main/java/com/dtcc/projects/DelTech.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.dtcc.projects;

import java.util.ArrayList;

public class DelTech {
private static ArrayList<Instructor> instructorList = new ArrayList<>();

static{
String[] instructorNames = {"Brian", "Kaleb", "Zan"};
for(String instructorName : instructorNames){
Instructor instructor = new Instructor(instructorName);
hire(instructor);
}
}

public static void hire(Instructor instructor){
instructorList.add(instructor);
}

public static ArrayList<Instructor> getInstructors(){
return instructorList;
}

public static void fireStaff(){
instructorList.clear();
}
}
20 changes: 20 additions & 0 deletions src/main/java/com/dtcc/projects/Instructor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.dtcc.projects;

public class Instructor extends Person implements Teacher{

public Instructor(){};

public Instructor(String instructorName){
super(instructorName);
}

public void teach(Student student, double numberOfHours) {
student.learn(numberOfHours);
}

public void lecture(Student[] student, double numberOfHours) {
for(int i = 0; i < student.length; i++){
student[i].learn(numberOfHours);
}
}
}
28 changes: 28 additions & 0 deletions src/main/java/com/dtcc/projects/JavaAcademy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.dtcc.projects;

import java.util.ArrayList;

public class JavaAcademy {
private static ArrayList<Student> studentList = new ArrayList<>();

static { // static initializer
String[] studentNames = { "Jessica", "Emad", "Cedric", "Lolu", "Apoorva", "Vara", "Craig", "Robert",
"Stephen", "Ferdinand", "Charu" };
for (String studentName : studentNames) {
Student student = new Student(studentName);
studentList.add(student);
}
}

public static void recruitStudent(Student student){
studentList.add(student);
}

public static ArrayList<Student> getStudents(){
return studentList;
}

public static void removeStudents(){
studentList.clear();
}
}
5 changes: 5 additions & 0 deletions src/main/java/com/dtcc/projects/Learner.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.dtcc.projects;

public interface Learner {
void learn(double numberOfHours);
}
16 changes: 16 additions & 0 deletions src/main/java/com/dtcc/projects/Person.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
package com.dtcc.projects;

public class Person {

private String name;

public Person(){}

public Person(String name){
this.name = name;
}

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}
}
20 changes: 20 additions & 0 deletions src/main/java/com/dtcc/projects/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.dtcc.projects;

public class Student extends Person implements Learner{

private double totalStudyTime = 0;

public Student(){};

public Student(String studentName){
super(studentName);
}

public void learn(double numberOfHours){
totalStudyTime+=numberOfHours;
}

public double getTotalStudyTime() {
return totalStudyTime;
}
}
6 changes: 6 additions & 0 deletions src/main/java/com/dtcc/projects/Teacher.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.dtcc.projects;

public interface Teacher {
void teach(Student student, double numberOfHours);
void lecture(Student[] student, double numberOfHours);
}
11 changes: 11 additions & 0 deletions src/main/main.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
24 changes: 24 additions & 0 deletions src/test/java/com/dtcc/projects/TestClassRoom.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.dtcc.projects;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import java.util.HashMap;

public class TestClassRoom {

@Test
public void testRoster(){
HashMap<String, Person> roster = ClassRoom.getRoster();
for(Student student: JavaAcademy.getStudents()){
Assert.assertTrue(roster.containsKey(student.getName()));
Assert.assertEquals(student, roster.get(student.getName()));
}
for(Instructor instructor: DelTech.getInstructors()){
Assert.assertTrue(roster.containsKey(instructor.getName()));
Assert.assertEquals(instructor, roster.get(instructor.getName()));
}
}

}
28 changes: 28 additions & 0 deletions src/test/java/com/dtcc/projects/TestDelTech.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.dtcc.projects;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class TestDelTech {

DelTech deltech;

@Before
public void setup(){
deltech = new DelTech();
deltech.fireStaff();
}

@Test
public void testFireStaff(){
Assert.assertTrue(deltech.getInstructors().isEmpty());
}

@Test
public void testHireStaff(){
Instructor instructor = new Instructor("Zan");
deltech.hire(instructor);
Assert.assertTrue(deltech.getInstructors().contains(instructor));
}
}
37 changes: 37 additions & 0 deletions src/test/java/com/dtcc/projects/TestInstructor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.dtcc.projects;

import org.junit.Assert;
import org.junit.Test;

public class TestInstructor {

@Test
public void testImplementation(){
Instructor instructor = new Instructor();
Assert.assertTrue(instructor instanceof Teacher);
}

@Test
public void testInheritance(){
Instructor instructor = new Instructor();
Assert.assertTrue(instructor instanceof Person);
}

@Test
public void testTeach(){
Instructor instructor = new Instructor();
Student student = new Student();
instructor.teach(student, 3);
Assert.assertEquals(3,student.getTotalStudyTime(), .0001);
}

@Test
public void testLecture(){
Instructor instructor = new Instructor();
Student student = new Student();
instructor.teach(student, 3);
Assert.assertEquals(3,student.getTotalStudyTime(), .0001);
}


}
28 changes: 28 additions & 0 deletions src/test/java/com/dtcc/projects/TestJavAcademy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.dtcc.projects;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class TestJavAcademy {
JavaAcademy javaAcademy;

@Before
public void setup(){
javaAcademy = new JavaAcademy();
javaAcademy.removeStudents();
}

@Test
public void testRemoveStudents(){
Assert.assertTrue(javaAcademy.getStudents().isEmpty());
}

@Test
public void testRecruitStudent(){
Student student = new Student("Jess");
javaAcademy.recruitStudent(student);
Assert.assertTrue(javaAcademy.getStudents().contains(student));
}

}
17 changes: 17 additions & 0 deletions src/test/java/com/dtcc/projects/TestPerson.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
package com.dtcc.projects;

import org.junit.Assert;
import org.junit.Test;

public class TestPerson {

@Test
public void testSetName(){
Person person = new Person();
person.setName("John");
Assert.assertEquals("John", person.getName());
}

@Test
public void testConstructor(){
Person newPerson = new Person("Joe");
Assert.assertEquals("Joe", newPerson.getName());
}

}
26 changes: 26 additions & 0 deletions src/test/java/com/dtcc/projects/TestStudent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.dtcc.projects;

import org.junit.Assert;
import org.junit.Test;

public class TestStudent {

@Test
public void testImplementation(){
Student student = new Student();
Assert.assertTrue(student instanceof Learner);
}

@Test
public void testInheritance(){
Student student = new Student();
Assert.assertTrue(student instanceof Learner);
}

@Test
public void testLearn(){
Student student = new Student();
student.learn(4);
Assert.assertEquals(4, student.getTotalStudyTime(), .0001);
}
}
22 changes: 22 additions & 0 deletions src/test/test.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library" scope="TEST">
<library name="JUnit4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module" module-name="main" scope="TEST" />
</component>
</module>