1 package org.kuali.ole.repository;
2
3 import org.apache.commons.io.FileUtils;
4 import org.apache.solr.client.solrj.SolrQuery;
5 import org.apache.solr.client.solrj.SolrServer;
6 import org.apache.solr.client.solrj.impl.HttpSolrServer;
7 import org.apache.solr.client.solrj.response.QueryResponse;
8 import org.apache.solr.common.SolrDocumentList;
9 import org.junit.Ignore;
10 import org.junit.Test;
11 import org.kuali.ole.RepositoryManager;
12 import org.kuali.ole.docstore.model.xmlpojo.ingest.Request;
13 import org.kuali.ole.docstore.model.xmlpojo.ingest.RequestDocument;
14 import org.kuali.ole.docstore.model.xstream.ingest.RequestHandler;
15 import org.kuali.rice.core.api.config.property.ConfigContext;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18
19 import javax.jcr.Node;
20 import javax.jcr.Session;
21 import java.io.File;
22 import java.util.ArrayList;
23 import java.util.Iterator;
24 import java.util.List;
25
26 import static org.junit.Assert.*;
27
28
29
30
31 @Ignore
32 @Deprecated
33 public class DeleteManage_AT {
34
35 private static final Logger LOG = LoggerFactory.getLogger(DeleteManage_AT.class);
36
37 @Test
38 public void deleteLinkedDocs() throws Exception {
39 Session session = null;
40
41 File file = new File(getClass().getResource("/org/kuali/ole/repository/request.xml").toURI());
42 String input = FileUtils.readFileToString(file);
43 RequestHandler rh = new RequestHandler();
44 Request request = rh.toObject(input);
45
46
47
48
49
50
51
52
53
54
55
56 List<RequestDocument> docStoreDocuments = null;
57 List<String> uuidsList = new ArrayList<String>();
58 String status = null;
59 List<String> categoryList = new ArrayList<String>();
60 List<String> typeList = new ArrayList<String>();
61 List<String> formatList = new ArrayList<String>();
62 String category = null;
63 String type = null;
64 String format = null;
65 session = RepositoryManager.getRepositoryManager().getSession();
66 try {
67 for (Iterator<RequestDocument> iterator = docStoreDocuments.iterator(); iterator.hasNext(); ) {
68 RequestDocument document = iterator.next();
69 category = document.getCategory();
70 type = document.getType();
71 format = document.getFormat();
72 LOG.info("UUIDs...." + document.getUuid() + "category...." + category);
73 String uuid = document.getUuid();
74 uuidsList.add(uuid);
75 categoryList.add(category);
76 typeList.add(type);
77 formatList.add(format);
78 }
79 String deleteUuidXml = deleteuuidsXml(uuidsList, categoryList, typeList, formatList);
80
81 LOG.info("status" + status);
82 checkUuidInSolr(uuidsList, category);
83 checkUuidInDocStore(uuidsList, session);
84 } catch (Exception e) {
85 LOG.info(e.getMessage() , e);
86 status = "Failure";
87 LOG.info("status" + status);
88 } finally {
89 RepositoryManager.getRepositoryManager().logout(session);
90 }
91 }
92
93 private String deleteuuidsXml(List<String> uuidsList, List<String> categoryList, List<String> typeList,
94 List<String> formatList) {
95
96 StringBuilder sb = new StringBuilder();
97 sb.append("<request>\n");
98 sb.append(" <user>").append("ole-khuntley").append("</user>\n");
99 sb.append(" <operation>").append("batchDeleteWithLinks").append("</operation>\n");
100 sb.append("<requestDocuments>\n");
101 for (int i = 0; i < uuidsList.size(); i++) {
102 sb.append("<ingestdocument id=\"" + uuidsList.get(i) + "\" category=\"" + categoryList.get(i) + "\" type=\""
103 + typeList.get(i) + "\" format=\"" + formatList.get(i) + "\">" + "</ingestdocument>\n");
104 }
105 sb.append(" </requestDocuments>\n");
106 sb.append(" </request>");
107 LOG.info("sb.tostring" + sb.toString());
108
109 return sb.toString();
110 }
111
112 private void checkUuidInSolr(List<String> uuidsList, String category) throws Exception {
113 if (category.equalsIgnoreCase("bibliographic")) {
114 category = "bib";
115 }
116 SolrServer solr = new HttpSolrServer(
117 ConfigContext.getCurrentContextConfig().getProperty("docSearchURL") + "/" + category);
118 SolrQuery query = new SolrQuery();
119 for (int i = 0; i < uuidsList.size(); i++) {
120 query.setQuery("uniqueId:" + uuidsList.get(i));
121 QueryResponse response = solr.query(query);
122 LOG.info("query..." + query);
123 SolrDocumentList doc = response.getResults();
124 LOG.info("NumFound..." + doc.getNumFound());
125 assertEquals(0, (int) (doc.getNumFound()));
126 }
127 }
128
129 private void checkUuidInDocStore(List<String> uuidsList, Session session) throws Exception {
130 for (int i = 0; i < uuidsList.size(); i++) {
131 Node deleteNode = new NodeHandler().getNodeByUUID(session, uuidsList.get(i));
132 LOG.info("deleteNodes..." + deleteNode);
133 assertNull(deleteNode);
134 }
135 }
136 }
137
138