### Question:
ProjectServiceImpl extends ServiceSupport implements ProjectService { public AbstractProject<?, ?> findProjectByFullName(final String projectName) { checkProjectName(projectName); AbstractProject<?, ?> p = getHudson().getItemByFullName(projectName, AbstractProject.class); if (p != null) { this.securityService.checkPermission(p, Item.READ); } return p; } @Inject  ProjectServiceImpl(final SecurityService securityService); AbstractProject<?, ?> getProject(final UUID id); AbstractProject<?, ?> getProject(final String projectName); AbstractProject<?, ?> getProjectByFullName(final String projectName); AbstractProject<?, ?> findProject(final UUID id); AbstractProject<?, ?> findProject(final String projectName); AbstractProject<?, ?> findProjectByFullName(final String projectName); @SuppressWarnings("rawtypes") List<AbstractProject> getAllProjects(); T copyProject(final T src, final String targetProjectName); TopLevelItem createProjectFromXML(final String projectName, final InputStream xml); boolean projectExists(final String projectName); Collection<String> getProjectNames();  }### Answer:
@Test(expected = NullPointerException.class) public void findProjectByFullnameNullArg() { getInst().findProjectByFullName(null); }
@Test public void findProjectByFullnameNotFound() { assertThat(getInst().findProjectByFullName("fullname"), nullValue()); }
@Test public void findProjectByFullnameSecurity() { doReturn(project).when(hudson).getItemByFullName("fullname", AbstractProject.class); AbstractProject<?, ?> result = getInst().findProjectByFullName("fullname"); assertThat(result, equalTo(project)); Mockito.verify(securityService).checkPermission(project, Item.READ); }