blob: 35a15bd76def0492e033ad4a1ce1f5661ffd90dd [file] [log] [blame]
margaretha5c67dd52018-12-18 17:27:05 +01001package de.ids_mannheim.korap.cache;
margaretha563aabe2018-09-13 20:39:45 +02002
Marc Kupietzd43a98d2023-09-22 17:11:46 +02003import static org.junit.jupiter.api.Assertions.assertFalse;
4import static org.junit.jupiter.api.Assertions.assertNotNull;
5import static org.junit.jupiter.api.Assertions.assertNull;
6import static org.junit.jupiter.api.Assertions.assertTrue;
margaretha563aabe2018-09-13 20:39:45 +02007
8import java.io.IOException;
margaretha7c1f4282021-11-29 17:27:53 +01009import java.util.Map;
margaretha563aabe2018-09-13 20:39:45 +020010
Marc Kupietzd43a98d2023-09-22 17:11:46 +020011import org.junit.jupiter.api.Test;
margaretha563aabe2018-09-13 20:39:45 +020012import org.springframework.beans.factory.annotation.Autowired;
margaretha7c1f4282021-11-29 17:27:53 +010013import de.ids_mannheim.korap.collection.DocBits;
margaretha5c67dd52018-12-18 17:27:05 +010014import de.ids_mannheim.korap.config.SpringJerseyTest;
margarethab097fb02021-02-22 19:28:33 +010015import de.ids_mannheim.korap.dao.QueryDao;
16import de.ids_mannheim.korap.entity.QueryDO;
margaretha563aabe2018-09-13 20:39:45 +020017import de.ids_mannheim.korap.exceptions.KustvaktException;
margarethac8588902024-06-13 09:36:53 +020018import de.ids_mannheim.korap.init.NamedVCLoader;
margaretha563aabe2018-09-13 20:39:45 +020019import de.ids_mannheim.korap.util.QueryException;
margaretha563aabe2018-09-13 20:39:45 +020020
margaretha9e53bb22018-09-14 19:39:15 +020021public class NamedVCLoaderTest extends SpringJerseyTest {
margaretha563aabe2018-09-13 20:39:45 +020022
23 @Autowired
24 private NamedVCLoader vcLoader;
Marc Kupietzd43a98d2023-09-22 17:11:46 +020025
margaretha9e53bb22018-09-14 19:39:15 +020026 @Autowired
margarethab097fb02021-02-22 19:28:33 +010027 private QueryDao dao;
margaretha9e53bb22018-09-14 19:39:15 +020028
margaretha563aabe2018-09-13 20:39:45 +020029 @Test
margaretha35e1ca22023-11-16 22:00:01 +010030 public void testNamedVCLoader ()
31 throws IOException, QueryException, KustvaktException {
margaretha7c1f4282021-11-29 17:27:53 +010032 String vcId = "named-vc1";
33 vcLoader.loadVCToCache(vcId, "/vc/named-vc1.jsonld");
34 assertTrue(VirtualCorpusCache.contains(vcId));
margaretha7c1f4282021-11-29 17:27:53 +010035 Map<String, DocBits> cachedData = VirtualCorpusCache.retrieve(vcId);
36 assertTrue(cachedData.size() > 0);
margaretha05818b42024-04-10 13:10:02 +020037 //VirtualCorpusCache.delete(vcId);
38 //assertFalse(VirtualCorpusCache.contains(vcId));
margaretha7c1f4282021-11-29 17:27:53 +010039 QueryDO vc = dao.retrieveQueryByName(vcId, "system");
40 assertNotNull(vc);
margaretha05818b42024-04-10 13:10:02 +020041
42 String koralQuery = vc.getKoralQuery();
43 testUpdateVC(vcId,koralQuery);
44 }
45
46 private void testUpdateVC (String vcId, String koralQuery)
47 throws IOException, QueryException, KustvaktException {
48 String json = """
49 {"collection": {
50 "@type": "koral:doc",
51 "key": "textSigle",
52 "match": "match:eq",
53 "type" : "type:string",
54 "value": [
55 "GOE/AGF/00000"
56 ]
57 }}""";
58
59 vcLoader.loadVCToCache(vcId, "", json);
60
61 Map<String, DocBits> cachedData = VirtualCorpusCache.retrieve(vcId);
62 assertTrue(cachedData.size() > 0);
63
64 QueryDO vc = dao.retrieveQueryByName(vcId, "system");
65 String updatedKoralQuery = vc.getKoralQuery();
66
67 assertTrue (koralQuery.hashCode() != updatedKoralQuery.hashCode());
68
69 VirtualCorpusCache.delete(vcId);
70 assertFalse(VirtualCorpusCache.contains(vcId));
margarethab097fb02021-02-22 19:28:33 +010071 dao.deleteQuery(vc);
margaretha7c1f4282021-11-29 17:27:53 +010072 vc = dao.retrieveQueryByName(vcId, "system");
73 assertNull(vc);
margaretha563aabe2018-09-13 20:39:45 +020074 }
margaretha563aabe2018-09-13 20:39:45 +020075}