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.plugins.crm.modules.form.service.draft;
35
36 import java.util.Arrays;
37 import java.util.Collections;
38 import java.util.HashMap;
39 import java.util.List;
40 import java.util.Map;
41
42 import fr.paris.lutece.plugins.blobstore.service.IBlobStoreService;
43 import fr.paris.lutece.plugins.crm.modules.form.util.Constants;
44 import fr.paris.lutece.plugins.crm.modules.form.util.JSONUtils;
45 import fr.paris.lutece.plugins.genericattributes.business.Entry;
46 import fr.paris.lutece.plugins.genericattributes.business.EntryType;
47 import fr.paris.lutece.plugins.genericattributes.business.Response;
48 import fr.paris.lutece.test.LuteceTestCase;
49 import fr.paris.lutece.test.MokeHttpSession;
50
51
52 public class CRMDraftBackupServiceTest extends LuteceTestCase
53 {
54 public void testSaveResponses( )
55 {
56 CRMDraftBackupService backupService = new CRMDraftBackupService( );
57 IBlobStoreService blobStore = new InMemoryBlobStoreService( );
58 backupService.setBlobStoreService( blobStore );
59
60
61 String strKey = blobStore.store( new byte[0] );
62
63 int nIdForm = 1;
64
65 Map<Integer, List<Response>> mapResponses = buildResponseMap( );
66 MokeHttpSession session = new MokeHttpSession( );
67 session.setAttribute( Constants.SESSION_ATTRIBUTE_DEMAND_DATA_PARAMS, strKey );
68
69 byte[] bShouldStore = JSONUtils.buildJson( mapResponses, nIdForm, session ).getBytes( );
70
71 backupService.saveResponses( mapResponses, nIdForm, session );
72
73
74 byte[] bStored = blobStore.getBlob( strKey );
75
76 assertTrue( Arrays.equals( bShouldStore, bStored ) );
77 }
78
79 private Map<Integer, List<Response>> buildResponseMap( )
80 {
81 Map<Integer, List<Response>> mapResponses = new HashMap<Integer, List<Response>>( );
82
83
84 EntryType entryType = new EntryType( );
85 entryType.setBeanName( "form.entryTypeText" );
86
87 Response response1 = new Response( );
88 Entry entry1 = new Entry( );
89 entry1.setIdEntry( 1 );
90 entry1.setEntryType( entryType );
91 response1.setEntry( entry1 );
92 response1.setResponseValue( "value1" );
93 mapResponses.put( Integer.valueOf( 1 ), Collections.singletonList( response1 ) );
94
95 Response response2 = new Response( );
96 Entry entry2 = new Entry( );
97 entry2.setIdEntry( 2 );
98 entry2.setEntryType( entryType );
99 response2.setEntry( entry2 );
100 response2.setResponseValue( "value2" );
101 mapResponses.put( Integer.valueOf( 2 ), Collections.singletonList( response2 ) );
102
103 return mapResponses;
104 }
105 }