Project

General

Profile

1 7547 tao
package edu.ucsb.nceas.metacat.index;
2
3
import static org.junit.Assert.assertEquals;
4
import static org.junit.Assert.assertTrue;
5
6
import java.io.File;
7
import java.io.FileInputStream;
8
import java.io.InputStream;
9
import java.util.List;
10
11
12
13 7569 tao
import org.apache.solr.client.solrj.SolrServer;
14
import org.apache.solr.client.solrj.SolrServerException;
15
import org.apache.solr.client.solrj.response.QueryResponse;
16
import org.apache.solr.common.SolrDocument;
17
import org.apache.solr.common.SolrDocumentList;
18
import org.apache.solr.common.params.SolrParams;
19
import org.apache.solr.servlet.SolrRequestParsers;
20 7555 tao
import org.dataone.service.types.v1.SystemMetadata;
21
import org.dataone.service.util.TypeMarshaller;
22 7547 tao
import org.junit.Test;
23
24
public class SolrIndexTest {
25
26
    private static final String SYSTEMMETAFILEPATH = "src/test/resources/eml-system-meta-example.xml";
27
    private static final String EMLFILEPATH = "src/test/resources/eml-example.xml";
28 7548 tao
    private static final String id = "urn:uuid:606a19dd-b531-4bf4-b5a5-6d06c3d39098";
29 7547 tao
30
    /**
31
     * Test building index for an insert.
32
     */
33
    @Test
34
    public void testInsert() throws Exception {
35
       SolrIndex solrIndex = generateSolrIndex();
36 7555 tao
       //InputStream systemInputStream = new FileInputStream(new File(SYSTEMMETAFILEPATH));
37
       SystemMetadata systemMetadata = TypeMarshaller.unmarshalTypeFromFile(SystemMetadata.class, SYSTEMMETAFILEPATH);
38
       InputStream emlInputStream = new FileInputStream(new File(EMLFILEPATH));
39
       solrIndex.insert(id, systemMetadata, emlInputStream);
40 7569 tao
       doQuery(solrIndex.getSolrServer());
41 7547 tao
    }
42
43 7548 tao
    /**
44
     * Test building index for an insert.
45
     */
46
    @Test
47
    public void testDelete() throws Exception {
48 7564 tao
       //SolrIndex solrIndex = generateSolrIndex();
49
       //solrIndex.remove(id);
50 7548 tao
51
    }
52
53 7547 tao
    private SolrIndex generateSolrIndex() throws Exception {
54
        ApplicationController controller = new ApplicationController();
55
        List<SolrIndex> list = controller.getSolrIndexes();
56
        SolrIndex[] solrIndexesarray = list.toArray(new SolrIndex[list.size()]);
57
        SolrIndex index = solrIndexesarray[0];
58
        return index;
59
    }
60 7569 tao
61
    /*
62
     * Do query
63
     */
64
    private void doQuery(SolrServer server)
65
                    throws SolrServerException {
66
                StringBuffer request = new StringBuffer();
67
                request.append("q=" + "*:*");
68
                SolrParams solrParams = SolrRequestParsers.parseQueryString(request
69
                        .toString());
70
                QueryResponse reponse = server.query(solrParams);
71
                System.out.println(reponse.toString());
72
    }
73
74
75
    /*
76
     * Print out the QueryResponse
77
     */
78
    private void print(QueryResponse response) {
79
        SolrDocumentList docs = response.getResults();
80
        if (docs != null) {
81
            System.out.println(docs.getNumFound() + " documents found, "
82
                    + docs.size() + " returned : ");
83
            for (int i = 0; i < docs.size(); i++) {
84
                SolrDocument doc = docs.get(i);
85
                System.out.println("\t" + doc.toString());
86
            }
87
        }
88
    }
89 7547 tao
}