Skip to content

Commit 8e74436

Browse files
author
Lloyd Watkin
committed
Refactor method signature of valdiate entry
1 parent 66ef2f1 commit 8e74436

4 files changed

Lines changed: 65 additions & 43 deletions

File tree

src/main/java/org/buddycloud/channelserver/channel/ValidateEntry.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ public class ValidateEntry {
4040
private String inReplyTo;
4141
private Element meta;
4242
private Element media;
43+
44+
private JID jid;
45+
private String channelServerDomain;
46+
private String node;
4347

4448
Map<String, String> params = new HashMap<String, String>();
4549

@@ -134,8 +138,7 @@ public boolean isValid() {
134138
return true;
135139
}
136140

137-
public Element getPayload(JID jid, String channelServerDomain,
138-
String node) {
141+
public Element getPayload() {
139142

140143
Element entry = new DOMElement("entry", new org.dom4j.Namespace("",
141144
NS_ATOM));
@@ -197,4 +200,16 @@ public Element getPayload(JID jid, String channelServerDomain,
197200
return entry;
198201
}
199202

203+
public void setUser(JID jid) {
204+
this.jid = jid;
205+
}
206+
207+
public void setNode(String node) {
208+
this.node = node;
209+
}
210+
211+
public void setTo(String channelServerDomain) {
212+
this.channelServerDomain = channelServerDomain;
213+
}
214+
200215
}

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/Publish.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,7 @@ private boolean determineInReplyToDetails() throws NodeStoreException,
161161

162162
private void extractItemDetails() throws InterruptedException {
163163

164-
entry = entryContent.getPayload(publishersJID, request
165-
.getTo().toBareJID(), node);
164+
entry = entryContent.getPayload();
166165
id = GlobalItemIDImpl.toLocalId(entry.element("id").getText());
167166
}
168167

@@ -195,6 +194,9 @@ private boolean isRequestValid() throws InterruptedException {
195194
}
196195
entryContent = getEntryValidator();
197196
entryContent.setEntry(item.element("entry"));
197+
entryContent.setUser(publishersJID);
198+
entryContent.setTo(request.getTo().toBareJID());
199+
entryContent.setNode(node);
198200

199201
if (!entryContent.isValid()) {
200202
sendInvalidEntryResponse();

src/test/java/org/buddycloud/channelserver/channel/ValidateEntryTest.java

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@ public void setUp() throws Exception {
4646
replyEntry = replyRequest.getChildElement().element("publish")
4747
.element("item").element("entry");
4848
}
49+
50+
private ValidateEntry getEntryObject(Element entry) {
51+
ValidateEntry validate = new ValidateEntry(entry);
52+
validate.setNode(node);
53+
validate.setTo(server);
54+
validate.setUser(jid);
55+
return validate;
56+
}
4957

5058
@Test
5159
public void notProvidingAnEntryReturnsError() throws Exception {
@@ -55,7 +63,7 @@ public void notProvidingAnEntryReturnsError() throws Exception {
5563
Assert.assertEquals(ValidateEntry.MISSING_ENTRY_ELEMENT,
5664
validateEntry.getErrorMessage());
5765
}
58-
66+
5967
@Test
6068
public void missingIdAttributeGetsAdded() throws Exception {
6169

@@ -64,9 +72,9 @@ public void missingIdAttributeGetsAdded() throws Exception {
6472

6573
Element entry = (Element) this.publishEntry.clone();
6674
entry.element("id").detach();
67-
validateEntry = new ValidateEntry(entry);
75+
validateEntry = getEntryObject(entry);
6876
Assert.assertTrue(validateEntry.isValid());
69-
entry = validateEntry.getPayload(jid, server, node);
77+
entry = validateEntry.getPayload();
7078
Assert.assertTrue(entry.elementText("id").contains(
7179
"tag:" + server + "," + node + ","));
7280
}
@@ -81,9 +89,9 @@ public void emptyIdElementHasValueAdded() throws Exception {
8189
entry.element("id").detach();
8290
entry.addElement("id");
8391

84-
validateEntry = new ValidateEntry(entry);
92+
validateEntry = getEntryObject(entry);
8593
Assert.assertTrue(validateEntry.isValid());
86-
entry = validateEntry.getPayload(jid, server, node);
94+
entry = validateEntry.getPayload();
8795
Assert.assertTrue(entry.elementText("id").contains(
8896
"tag:" + server + "," + node + ","));
8997
}
@@ -94,9 +102,9 @@ public void idElementIsIgnored() throws Exception {
94102
Assert.assertEquals(id, publishEntry.elementText("id"));
95103

96104
Element entry = (Element) this.publishEntry.clone();
97-
validateEntry = new ValidateEntry(entry);
105+
validateEntry = getEntryObject(entry);
98106
Assert.assertTrue(validateEntry.isValid());
99-
entry = validateEntry.getPayload(jid, server, node);
107+
entry = validateEntry.getPayload();
100108
Assert.assertFalse(entry.elementText("id").contains(id));
101109

102110
}
@@ -108,9 +116,9 @@ public void missingTitleElementIsAdded() throws Exception {
108116

109117
Element entry = (Element) this.publishEntry.clone();
110118
entry.element("title").detach();
111-
validateEntry = new ValidateEntry(entry);
119+
validateEntry = getEntryObject(entry);
112120
Assert.assertTrue(validateEntry.isValid());
113-
entry = validateEntry.getPayload(jid, server, node);
121+
entry = validateEntry.getPayload();
114122
Assert.assertEquals("Post", entry.elementText("title"));
115123
}
116124

@@ -121,7 +129,7 @@ public void missingContentElementReturnsInvalid() throws Exception {
121129

122130
Element entry = (Element) this.publishEntry.clone();
123131
entry.element("content").detach();
124-
validateEntry = new ValidateEntry(entry);
132+
validateEntry = getEntryObject(entry);
125133
Assert.assertFalse(validateEntry.isValid());
126134
Assert.assertEquals(ValidateEntry.MISSING_CONTENT_ELEMENT,
127135
validateEntry.getErrorMessage());
@@ -135,9 +143,9 @@ public void missingUpdatedElementHasValueAdded() throws Exception {
135143

136144
Element entry = (Element) this.publishEntry.clone();
137145
entry.element("updated").detach();
138-
validateEntry = new ValidateEntry(entry);
146+
validateEntry = getEntryObject(entry);
139147
Assert.assertTrue(validateEntry.isValid());
140-
entry = validateEntry.getPayload(jid, server, node);
148+
entry = validateEntry.getPayload();
141149
Assert.assertTrue(entry
142150
.elementText("updated")
143151
.matches(
@@ -150,18 +158,18 @@ public void updateDateIsIgnored() throws Exception {
150158
Assert.assertEquals(dateString, publishEntry.elementText("updated"));
151159

152160
Element entry = (Element) this.publishEntry.clone();
153-
validateEntry = new ValidateEntry(entry);
161+
validateEntry = getEntryObject(entry);
154162
Assert.assertTrue(validateEntry.isValid());
155-
entry = validateEntry.getPayload(jid, server, node);
163+
entry = validateEntry.getPayload();
156164
Assert.assertFalse(entry.elementText("updated").equals(dateString));
157165
}
158166

159167
@Test
160168
public void authorEntryIsAdded() throws Exception {
161169
Element entry = (Element) this.publishEntry.clone();
162-
validateEntry = new ValidateEntry(entry);
170+
validateEntry = getEntryObject(entry);
163171
Assert.assertTrue(validateEntry.isValid());
164-
entry = validateEntry.getPayload(jid, server, node);
172+
entry = validateEntry.getPayload();
165173

166174
Element author = entry.element("author");
167175
Assert.assertNotNull(author);
@@ -175,16 +183,16 @@ public void authorEntryIsAdded() throws Exception {
175183
@Test
176184
public void geolocationEntryIsAdded() throws Exception {
177185
Element entry = (Element) this.publishEntry.clone();
178-
validateEntry = new ValidateEntry(entry);
186+
validateEntry = getEntryObject(entry);
179187
Assert.assertTrue(validateEntry.isValid());
180-
entry = validateEntry.getPayload(jid, server, node);
188+
entry = validateEntry.getPayload();
181189

182190
Assert.assertNotNull(entry.element("geoloc"));
183191

184192
entry = (Element) this.replyEntry.clone();
185-
validateEntry = new ValidateEntry(entry);
193+
validateEntry = getEntryObject(entry);
186194
Assert.assertTrue(validateEntry.isValid());
187-
entry = validateEntry.getPayload(jid, server, node);
195+
entry = validateEntry.getPayload();
188196

189197
Assert.assertNull(entry.element("geoloc"));
190198
}
@@ -197,9 +205,9 @@ public void globalInReplyToIdIsMadeALocalId() throws Exception {
197205
replyEntry.element("in-reply-to").attributeValue("ref"));
198206

199207
Element entry = (Element) this.replyEntry.clone();
200-
validateEntry = new ValidateEntry(entry);
208+
validateEntry = getEntryObject(entry);
201209
Assert.assertTrue(validateEntry.isValid());
202-
entry = validateEntry.getPayload(jid, server, node);
210+
entry = validateEntry.getPayload();
203211
Assert.assertEquals("fc362eb42085f017ed9ccd9c4004b095",
204212
entry.element("in-reply-to").attributeValue("ref"));
205213
}
@@ -208,17 +216,17 @@ public void globalInReplyToIdIsMadeALocalId() throws Exception {
208216
public void postGetsNoteTypeReplyGetsCommentType() throws Exception {
209217

210218
Element entry = (Element) this.publishEntry.clone();
211-
validateEntry = new ValidateEntry(entry);
219+
validateEntry = getEntryObject(entry);
212220
Assert.assertTrue(validateEntry.isValid());
213-
entry = validateEntry.getPayload(jid, server, node);
221+
entry = validateEntry.getPayload();
214222

215223
Assert.assertEquals(ValidateEntry.POST_TYPE_NOTE,
216224
entry.element("object").elementText("object-type"));
217225

218226
entry = (Element) this.replyEntry.clone();
219-
validateEntry = new ValidateEntry(entry);
227+
validateEntry = getEntryObject(entry);
220228
Assert.assertTrue(validateEntry.isValid());
221-
entry = validateEntry.getPayload(jid, server, node);
229+
entry = validateEntry.getPayload();
222230

223231
Assert.assertEquals(ValidateEntry.POST_TYPE_COMMENT,
224232
entry.element("object").elementText("object-type"));
@@ -228,7 +236,7 @@ public void postGetsNoteTypeReplyGetsCommentType() throws Exception {
228236
public void badContentTypeReturnsError() throws Exception {
229237
Element entry = (Element) this.publishEntry.clone();
230238
entry.element("content").attribute("type").setText("emojis");
231-
validateEntry = new ValidateEntry(entry);
239+
validateEntry = getEntryObject(entry);
232240
Assert.assertFalse(validateEntry.isValid());
233241
Assert.assertEquals(ValidateEntry.UNSUPPORTED_CONTENT_TYPE,
234242
validateEntry.getErrorMessage());
@@ -238,9 +246,9 @@ public void badContentTypeReturnsError() throws Exception {
238246
public void noContentTypeGetsDefaultedToText() throws Exception {
239247
Element entry = (Element) this.publishEntry.clone();
240248
entry.element("content").attribute("type").detach();
241-
validateEntry = new ValidateEntry(entry);
249+
validateEntry = getEntryObject(entry);
242250
Assert.assertTrue(validateEntry.isValid());
243-
entry = validateEntry.getPayload(jid, server, node);
251+
entry = validateEntry.getPayload();
244252
Assert.assertEquals(ValidateEntry.CONTENT_TEXT, entry
245253
.element("content").attributeValue("type"));
246254

@@ -251,19 +259,19 @@ public void contentTypeGetsAddedAsRequired() throws Exception {
251259
Element entry = (Element) this.publishEntry.clone();
252260
entry.element("content").attribute("type")
253261
.setText(ValidateEntry.CONTENT_XHTML);
254-
validateEntry = new ValidateEntry(entry);
262+
validateEntry = getEntryObject(entry);
255263
Assert.assertTrue(validateEntry.isValid());
256-
entry = validateEntry.getPayload(jid, server, node);
264+
entry = validateEntry.getPayload();
257265
Assert.assertEquals(ValidateEntry.CONTENT_XHTML,
258266
entry.element("content").attributeValue("type"));
259267
}
260268

261269
@Test
262270
public void activityVerbIsAdded() throws Exception {
263271
Element entry = (Element) this.publishEntry.clone();
264-
validateEntry = new ValidateEntry(entry);
272+
validateEntry = getEntryObject(entry);
265273
Assert.assertTrue(validateEntry.isValid());
266-
entry = validateEntry.getPayload(jid, server, node);
274+
entry = validateEntry.getPayload();
267275

268276
Assert.assertEquals(ValidateEntry.ACTIVITY_VERB_POST,
269277
entry.elementText("verb"));

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/PublishTest.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ public void setUp() throws Exception {
9595
Mockito.when(validateEntry.isValid()).thenReturn(true);
9696

9797
Mockito.when(
98-
validateEntry.getPayload(Mockito.any(JID.class),
99-
Mockito.anyString(), Mockito.anyString())).thenReturn(
98+
validateEntry.getPayload()).thenReturn(
10099
entry);
101100

102101
}
@@ -412,8 +411,7 @@ public void errorsIfReplyingToAPostWhichDoesntExist() throws Exception {
412411
.element("entry").createCopy();
413412

414413
Mockito.when(
415-
validateEntry.getPayload(Mockito.any(JID.class),
416-
Mockito.anyString(), Mockito.anyString())).thenReturn(
414+
validateEntry.getPayload()).thenReturn(
417415
entry);
418416

419417
publish.process(element, jid, request, null);
@@ -445,8 +443,7 @@ public void canNotReplyToAReply() throws Exception {
445443
.element("entry").createCopy();
446444

447445
Mockito.when(
448-
validateEntry.getPayload(Mockito.any(JID.class),
449-
Mockito.anyString(), Mockito.anyString())).thenReturn(
446+
validateEntry.getPayload()).thenReturn(
450447
entry);
451448

452449
publish.process(element, jid, request, null);

0 commit comments

Comments
 (0)