ApplicationMngrImpl implements IApplicationMngr { @Override public ManagedApplication createApplication( String name, String description, String tplName, String tplQualifier ) throws IOException, AlreadyExistingException, InvalidApplicationException { this.messagingMngr.checkMessagingConfiguration(); ApplicationTemplate tpl = this.applicationTemplateMngr.findTemplate( tplName, tplQualifier ); if( tpl == null ) throw new InvalidApplicationException( new RoboconfError( ErrorCode.PROJ_APPLICATION_TEMPLATE_NOT_FOUND )); return createApplication( name, description, tpl ); } ApplicationMngrImpl(
			INotificationMngr notificationMngr,
			IConfigurationMngr configurationMngr,
			ITargetsMngr targetsMngr,
			IMessagingMngr messagingMngr,
			IRandomMngr randomMngr,
			IAutonomicMngr autonomicMngr ); void setApplicationTemplateMngr( IApplicationTemplateMngr applicationTemplateMngr ); @Override Application findApplicationByName( String applicationName ); @Override ManagedApplication findManagedApplicationByName( String applicationName ); @Override Collection<ManagedApplication> getManagedApplications(); @Override ManagedApplication createApplication( String name, String description, String tplName, String tplQualifier ); @Override ManagedApplication createApplication( String name, String description, ApplicationTemplate tpl ); @Override void updateApplication( ManagedApplication ma, String newDesc ); @Override void deleteApplication( ManagedApplication ma ); @Override void restoreApplications(); @Override boolean isTemplateUsed( ApplicationTemplate tpl ); @Override void bindOrUnbindApplication( ManagedApplication ma, String externalExportPrefix, String applicationName, boolean bind ); @Override void replaceApplicationBindings( ManagedApplication ma, String externalExportPrefix, Set<String> applicationNames );  }
@Test( expected = IOException.class ) public void testCreateApplication_invalidApplicationName_1() throws Exception { this.mngr.createApplication( null, "desc", new ApplicationTemplate()); }
@Test( expected = IOException.class ) public void testCreateApplication_invalidApplicationName_2() throws Exception { this.mngr.createApplication( "", "desc", new ApplicationTemplate()); }
@Test( expected = IOException.class ) public void testCreateApplication_invalidApplicationName_3() throws Exception { this.mngr.createApplication( "app#", "desc", new ApplicationTemplate()); }
@Test( expected = InvalidApplicationException.class ) public void testCreateApplication_invalidTemplate() throws Exception { this.mngr.createApplication( "toto", "desc", "whatever", null ); }