@Test public void getZippingDeciderWhenCProjectTest() { projectFiles.add("Makefile"); assertEquals(project.getZippingDecider().getClass(), new DefaultZippingDecider(project).getClass()); }
public ZippingDecider getZippingDecider() { switch (getProjectType()) { case JAVA_MAVEN: return new MavenZippingDecider(this); case JAVA_ANT: return new DefaultZippingDecider(this); case MAKEFILE: return new DefaultZippingDecider(this); default: throw new InvalidProjectTypeException("Invalid project type"); } }
Project { public ZippingDecider getZippingDecider() { switch (getProjectType()) { case JAVA_MAVEN: return new MavenZippingDecider(this); case JAVA_ANT: return new DefaultZippingDecider(this); case MAKEFILE: return new DefaultZippingDecider(this); default: throw new InvalidProjectTypeException("Invalid project type"); } } }
Project { public ZippingDecider getZippingDecider() { switch (getProjectType()) { case JAVA_MAVEN: return new MavenZippingDecider(this); case JAVA_ANT: return new DefaultZippingDecider(this); case MAKEFILE: return new DefaultZippingDecider(this); default: throw new InvalidProjectTypeException("Invalid project type"); } } Project(Exercise exercise);  Project(Exercise exercise, List<String> projectFiles); }
Project { public ZippingDecider getZippingDecider() { switch (getProjectType()) { case JAVA_MAVEN: return new MavenZippingDecider(this); case JAVA_ANT: return new DefaultZippingDecider(this); case MAKEFILE: return new DefaultZippingDecider(this); default: throw new InvalidProjectTypeException("Invalid project type"); } } Project(Exercise exercise);  Project(Exercise exercise, List<String> projectFiles); Exercise getExercise(); void setExercise(Exercise exercise); String getRootPath(); ProjectType getProjectType(); boolean containsFile(String file); @Override boolean equals(Object o); @Override int hashCode(); ZippingDecider getZippingDecider(); void setProjectFiles(List<String> files); List<String> getReadOnlyProjectFiles(); String getProjectFileByName(String fileName); void addProjectFile(String file); void removeProjectFile(String path); void setExtraStudentFiles(List<String> files); List<String> getExtraStudentFiles(); boolean existsOnDisk(); ProjectStatus getStatus(); void setStatus(ProjectStatus status); }
Project { public ZippingDecider getZippingDecider() { switch (getProjectType()) { case JAVA_MAVEN: return new MavenZippingDecider(this); case JAVA_ANT: return new DefaultZippingDecider(this); case MAKEFILE: return new DefaultZippingDecider(this); default: throw new InvalidProjectTypeException("Invalid project type"); } } Project(Exercise exercise);  Project(Exercise exercise, List<String> projectFiles); Exercise getExercise(); void setExercise(Exercise exercise); String getRootPath(); ProjectType getProjectType(); boolean containsFile(String file); @Override boolean equals(Object o); @Override int hashCode(); ZippingDecider getZippingDecider(); void setProjectFiles(List<String> files); List<String> getReadOnlyProjectFiles(); String getProjectFileByName(String fileName); void addProjectFile(String file); void removeProjectFile(String path); void setExtraStudentFiles(List<String> files); List<String> getExtraStudentFiles(); boolean existsOnDisk(); ProjectStatus getStatus(); void setStatus(ProjectStatus status);  }