1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kew.impl.note;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertNotNull;
20 import static org.junit.Assert.assertTrue;
21 import static org.junit.Assert.fail;
22
23 import java.util.Iterator;
24 import java.util.List;
25
26 import org.joda.time.DateTime;
27 import org.junit.Test;
28 import org.kuali.rice.core.api.exception.RiceIllegalArgumentException;
29 import org.kuali.rice.kew.api.KewApiServiceLocator;
30 import org.kuali.rice.kew.api.WorkflowDocument;
31 import org.kuali.rice.kew.api.WorkflowDocumentFactory;
32 import org.kuali.rice.kew.api.note.Note;
33 import org.kuali.rice.kew.api.note.NoteService;
34 import org.kuali.rice.kew.test.KEWTestCase;
35
36 public class NoteServiceTest extends KEWTestCase {
37
38 @Test
39 public void testIllegalNoteOperations() throws Exception {
40 NoteService noteService = KewApiServiceLocator.getNoteService();
41
42 try {
43 noteService.createNote(null);
44 fail("RiceIllegalArgumentException should have been thrown");
45 } catch (RiceIllegalArgumentException e) {}
46
47 Note.Builder testNote = Note.Builder.create("1234", "ewestfal");
48
49 testNote.setId("4321");
50 try {
51 noteService.createNote(testNote.build());
52 fail("RiceIllegalArgumentException should have been thrown");
53 } catch (RiceIllegalArgumentException e) {}
54
55 try {
56 noteService.updateNote(null);
57 fail("RiceIllegalArgumentException should have been thrown");
58 } catch (RiceIllegalArgumentException e) {}
59
60
61 testNote = Note.Builder.create("1234", "ewestfal");
62 try {
63 noteService.updateNote(testNote.build());
64 fail("RiceIllegalArgumentException should have been thrown");
65 } catch (RiceIllegalArgumentException e) {}
66
67
68 testNote.setId("4321");
69 try {
70 noteService.updateNote(testNote.build());
71 fail("RiceIllegalArgumentException should have been thrown");
72 } catch (RiceIllegalArgumentException e) {}
73
74
75 testNote.setVersionNumber(new Long(1));
76 try {
77 noteService.updateNote(testNote.build());
78 fail("RiceIllegalArgumentException should have been thrown");
79 } catch (RiceIllegalArgumentException e) {}
80
81
82 testNote.setCreateDate(new DateTime());
83 try {
84 noteService.updateNote(testNote.build());
85 fail("RiceIllegalArgumentException should have been thrown");
86 } catch (RiceIllegalArgumentException e) {}
87
88
89 try {
90 noteService.deleteNote("1234");
91 fail("RiceIllegalArgumentException should have been thrown");
92 } catch (RiceIllegalArgumentException e) {}
93
94 }
95
96 @Test public void testNotesClient() throws Exception {
97 NoteService noteService = KewApiServiceLocator.getNoteService();
98
99 WorkflowDocument doc = WorkflowDocumentFactory.createDocument(getPrincipalIdForName("rkirkend"), "TestDocumentType");
100
101 assertTrue(noteService.getNotes(doc.getDocumentId()).isEmpty());
102
103
104 Note.Builder testNote = Note.Builder.create(doc.getDocumentId(), "andlee");
105 testNote.setText("first added note");
106
107 Note createdNote = noteService.createNote(testNote.build());
108 assertNotNull(createdNote);
109 assertNotNull(createdNote.getId());
110 assertNotNull(createdNote.getVersionNumber());
111 assertEquals(doc.getDocumentId(), createdNote.getDocumentId());
112 assertEquals("andlee", createdNote.getAuthorPrincipalId());
113 assertEquals("first added note", createdNote.getText());
114
115 testNote = Note.Builder.create(doc.getDocumentId(), "rou");
116 testNote.setText("second added note");
117 Note createdNote2 = noteService.createNote(testNote.build());
118
119 List<Note> notesList = noteService.getNotes(doc.getDocumentId());
120
121 assertEquals ("Two notes are added.", 2, notesList.size());
122
123 assertEquals("Note List size changed",2,notesList.size());
124 for (Iterator<Note> iter = notesList.iterator(); iter.hasNext();) {
125 Note note = iter.next();
126 assertNotNull("Note saved", note.getId());
127 if (note.getId().equals(createdNote.getId())) {
128 assertEquals("text altered during save", "first added note", note.getText());
129 assertEquals("note user associated with saved note", "andlee", note.getAuthorPrincipalId());
130 }
131 if (note.getId().equals(createdNote2.getId())) {
132 assertEquals("text altered during save", "second added note", note.getText());
133 assertEquals("note user associated with saved note", "rou", note.getAuthorPrincipalId());
134 }
135
136 }
137
138 notesList = noteService.getNotes(doc.getDocumentId());
139 Note note1 = null;
140 Note note2 = null;
141 for (Note note : notesList) {
142 if (note.getId().equals(createdNote.getId())) {
143 note1 = note;
144 } else if(note.getId().equals(createdNote2.getId())) {
145 note2 = note;
146 } else {
147 fail("encountered unexpected note!: " + note.getId());
148 }
149 }
150 noteService.deleteNote(note1.getId());
151
152 Note.Builder note2Builder = Note.Builder.create(note2);
153 note2Builder.setText("Update second note text");
154 noteService.updateNote(note2Builder.build());
155
156 notesList = noteService.getNotes(doc.getDocumentId());
157 assertEquals("Note List size changed",1,notesList.size());
158 Note remainingNote = notesList.get(0);
159 assertNotNull("Note saved", remainingNote.getId());
160 assertEquals("text altered during save", "Update second note text", remainingNote.getText());
161 assertEquals("note user associated with saved note", "rou", remainingNote.getAuthorPrincipalId());
162 }
163
164 }