### Question:
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);  }### Answer:
@Test public void getZippingDeciderWhenMavenProjectTest() { projectFiles.add("pom.xml"); assertEquals(project.getZippingDecider().getClass(), new MavenZippingDecider(project).getClass()); }
@Test public void getZippingDeciderWhenAntProjectTest() { projectFiles.add("build.xml"); assertEquals(project.getZippingDecider().getClass(), new DefaultZippingDecider(project).getClass()); }
@Test public void getZippingDeciderWhenCProjectTest() { projectFiles.add("Makefile"); assertEquals(project.getZippingDecider().getClass(), new DefaultZippingDecider(project).getClass()); }