1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.portal.service.daemon;
35
36 import fr.paris.lutece.portal.service.datastore.DatastoreService;
37 import fr.paris.lutece.portal.service.init.LuteceInitException;
38 import fr.paris.lutece.test.LuteceTestCase;
39
40 public class AppDaemonServiceTest extends LuteceTestCase
41 {
42 private static final String JUNIT_DAEMON = "JUNITAppDaemonServiceTest";
43 private static final String DAEMON_INTERVAL_DSKEY = "core.daemon." + JUNIT_DAEMON + ".interval";
44
45 private DaemonEntry _entry;
46
47 @Override
48 protected void setUp( ) throws Exception
49 {
50 super.setUp( );
51 _entry = new DaemonEntry( );
52 _entry.setId( JUNIT_DAEMON );
53 _entry.setNameKey( JUNIT_DAEMON );
54 _entry.setDescriptionKey( JUNIT_DAEMON );
55 _entry.setClassName( TestDaemon.class.getName( ) );
56 _entry.setPluginName( "core" );
57
58
59 DatastoreService.setInstanceDataValue( DAEMON_INTERVAL_DSKEY, "1" );
60 AppDaemonService.registerDaemon( _entry );
61 }
62
63 @Override
64 protected void tearDown( ) throws Exception
65 {
66 DatastoreService.removeInstanceData( DAEMON_INTERVAL_DSKEY );
67 AppDaemonService.unregisterDaemon( JUNIT_DAEMON );
68 super.tearDown( );
69 }
70
71 public void testRegisterDaemonTwiceIgnored( ) throws LuteceInitException
72 {
73 assertTrue( AppDaemonService.getDaemonEntries( ).contains( _entry ) );
74 DaemonEntry duplicate = new DaemonEntry( );
75 duplicate.setId( JUNIT_DAEMON );
76 duplicate.setNameKey( JUNIT_DAEMON );
77 duplicate.setDescriptionKey( JUNIT_DAEMON + "duplicate" );
78 duplicate.setClassName( TestDaemon.class.getName( ) );
79 duplicate.setPluginName( "core" );
80
81 AppDaemonService.registerDaemon( duplicate );
82
83 assertFalse( AppDaemonService.getDaemonEntries( ).contains( duplicate ) );
84 assertTrue( AppDaemonService.getDaemonEntries( ).contains( _entry ) );
85 DaemonEntry registeredEntry = AppDaemonService.getDaemonEntries( ).stream( ).filter( entry -> JUNIT_DAEMON.equals( entry.getId( ) ) ).findFirst( )
86 .orElseThrow( AssertionError::new );
87 assertEquals( JUNIT_DAEMON, registeredEntry.getDescriptionKey( ) );
88 }
89 }