1 package com.atlassian.bonnie.search.extractor;
2
3 import junit.framework.TestCase;
4
5 import org.apache.lucene.document.Document;
6
7 import com.atlassian.bonnie.Searchable;
8 import com.atlassian.bonnie.search.MockSearchableAttachment;
9 import com.atlassian.bonnie.search.MockSearchableObject;
10
11 public class TestAttachmentMetadataExtractor extends TestCase
12 {
13 public void testNonAttachment()
14 {
15 Searchable searchable = new MockSearchableObject();
16 Document document = makeDocument(searchable);
17 assertNull(document.getField("filename"));
18 assertNull(document.getField("comment"));
19 }
20
21 public void testAttachment()
22 {
23 MockSearchableAttachment attachment = new MockSearchableAttachment();
24 attachment.setId(123);
25 attachment.setFileName("cheese.txt");
26 attachment.setContentType("text/fish");
27 attachment.setComment("This is all about cheese");
28 Document document = makeDocument(attachment);
29 assertEquals("cheese.txt", document.getField("filename").stringValue());
30 assertEquals("This is all about cheese", document.getField("comment").stringValue());
31 }
32
33
34
35
36
37 public void testAttachmentComment()
38 {
39 final String comment = "trousers";
40 final String attachmentContent = "monkey";
41
42 MockSearchableAttachment attachment = new MockSearchableAttachment();
43 attachment.setId(123);
44 attachment.setFileName("fun.txt");
45 attachment.setContentType("text/plain");
46 attachment.setComment(comment);
47
48
49 Document document = new Document();
50 StringBuffer defaultSearchableText = new StringBuffer(attachmentContent);
51
52 new AttachmentMetadataExtractor().addFields(document, defaultSearchableText, attachment);
53
54 assertEquals(attachmentContent + " " + comment, defaultSearchableText.toString());
55 }
56
57 private Document makeDocument(Searchable searchable)
58 {
59 Document document = new Document();
60 new AttachmentMetadataExtractor().addFields(document, new StringBuffer(), searchable);
61 return document;
62 }
63 }