| margaretha | 5c67dd5 | 2018-12-18 17:27:05 +0100 | [diff] [blame] | 1 | package de.ids_mannheim.korap.cache; |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 2 | |
| Marc Kupietz | d43a98d | 2023-09-22 17:11:46 +0200 | [diff] [blame] | 3 | import static org.junit.jupiter.api.Assertions.assertFalse; |
| 4 | import static org.junit.jupiter.api.Assertions.assertNotNull; |
| 5 | import static org.junit.jupiter.api.Assertions.assertNull; |
| 6 | import static org.junit.jupiter.api.Assertions.assertTrue; |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 7 | |
| 8 | import java.io.IOException; |
| margaretha | 7c1f428 | 2021-11-29 17:27:53 +0100 | [diff] [blame] | 9 | import java.util.Map; |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 10 | |
| Marc Kupietz | d43a98d | 2023-09-22 17:11:46 +0200 | [diff] [blame] | 11 | import org.junit.jupiter.api.Test; |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 12 | import org.springframework.beans.factory.annotation.Autowired; |
| margaretha | 7c1f428 | 2021-11-29 17:27:53 +0100 | [diff] [blame] | 13 | import de.ids_mannheim.korap.collection.DocBits; |
| margaretha | 5c67dd5 | 2018-12-18 17:27:05 +0100 | [diff] [blame] | 14 | import de.ids_mannheim.korap.config.SpringJerseyTest; |
| margaretha | b097fb0 | 2021-02-22 19:28:33 +0100 | [diff] [blame] | 15 | import de.ids_mannheim.korap.dao.QueryDao; |
| 16 | import de.ids_mannheim.korap.entity.QueryDO; |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 17 | import de.ids_mannheim.korap.exceptions.KustvaktException; |
| margaretha | c858890 | 2024-06-13 09:36:53 +0200 | [diff] [blame] | 18 | import de.ids_mannheim.korap.init.NamedVCLoader; |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 19 | import de.ids_mannheim.korap.util.QueryException; |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 20 | |
| margaretha | 9e53bb2 | 2018-09-14 19:39:15 +0200 | [diff] [blame] | 21 | public class NamedVCLoaderTest extends SpringJerseyTest { |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 22 | |
| 23 | @Autowired |
| 24 | private NamedVCLoader vcLoader; |
| Marc Kupietz | d43a98d | 2023-09-22 17:11:46 +0200 | [diff] [blame] | 25 | |
| margaretha | 9e53bb2 | 2018-09-14 19:39:15 +0200 | [diff] [blame] | 26 | @Autowired |
| margaretha | b097fb0 | 2021-02-22 19:28:33 +0100 | [diff] [blame] | 27 | private QueryDao dao; |
| margaretha | 9e53bb2 | 2018-09-14 19:39:15 +0200 | [diff] [blame] | 28 | |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 29 | @Test |
| margaretha | 35e1ca2 | 2023-11-16 22:00:01 +0100 | [diff] [blame] | 30 | public void testNamedVCLoader () |
| 31 | throws IOException, QueryException, KustvaktException { |
| margaretha | 7c1f428 | 2021-11-29 17:27:53 +0100 | [diff] [blame] | 32 | String vcId = "named-vc1"; |
| 33 | vcLoader.loadVCToCache(vcId, "/vc/named-vc1.jsonld"); |
| 34 | assertTrue(VirtualCorpusCache.contains(vcId)); |
| margaretha | 7c1f428 | 2021-11-29 17:27:53 +0100 | [diff] [blame] | 35 | Map<String, DocBits> cachedData = VirtualCorpusCache.retrieve(vcId); |
| 36 | assertTrue(cachedData.size() > 0); |
| margaretha | 05818b4 | 2024-04-10 13:10:02 +0200 | [diff] [blame] | 37 | //VirtualCorpusCache.delete(vcId); |
| 38 | //assertFalse(VirtualCorpusCache.contains(vcId)); |
| margaretha | 7c1f428 | 2021-11-29 17:27:53 +0100 | [diff] [blame] | 39 | QueryDO vc = dao.retrieveQueryByName(vcId, "system"); |
| 40 | assertNotNull(vc); |
| margaretha | 05818b4 | 2024-04-10 13:10:02 +0200 | [diff] [blame] | 41 | |
| 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)); |
| margaretha | b097fb0 | 2021-02-22 19:28:33 +0100 | [diff] [blame] | 71 | dao.deleteQuery(vc); |
| margaretha | 7c1f428 | 2021-11-29 17:27:53 +0100 | [diff] [blame] | 72 | vc = dao.retrieveQueryByName(vcId, "system"); |
| 73 | assertNull(vc); |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 74 | } |
| margaretha | 563aabe | 2018-09-13 20:39:45 +0200 | [diff] [blame] | 75 | } |