blob: 871c1dccda15aecaa62f294d455e34af9700cabf [file] [log] [blame]
Michael Hanlc4446022016-02-12 18:03:17 +01001package de.ids_mannheim.korap.handlers;
2
margaretha992178e2017-02-10 13:21:21 +01003import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertNotEquals;
5import static org.junit.Assert.assertNotNull;
6
7import java.util.ArrayList;
8import java.util.Collection;
9import java.util.HashMap;
10import java.util.List;
11import java.util.Map;
12
13import org.junit.Assert;
margaretha843c4632017-10-25 19:16:12 +020014import org.junit.Ignore;
margaretha992178e2017-02-10 13:21:21 +010015import org.junit.Test;
16
Michael Hanlc0ed00f2016-06-23 14:33:10 +020017import de.ids_mannheim.korap.config.Attributes;
margarethaf68daa62017-09-21 02:11:24 +020018import de.ids_mannheim.korap.config.BeanConfigTest;
margaretha843c4632017-10-25 19:16:12 +020019import de.ids_mannheim.korap.config.KustvaktClassLoader;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010020import de.ids_mannheim.korap.config.TestHelper;
21import de.ids_mannheim.korap.exceptions.KustvaktException;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010022import de.ids_mannheim.korap.resources.KustvaktResource;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010023import de.ids_mannheim.korap.resources.VirtualCollection;
24import de.ids_mannheim.korap.user.User;
Michael Hanldaf86602016-05-12 14:31:52 +020025
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010026/**
27 * @author hanl
28 * @date 26/01/2016
29 */
margaretha843c4632017-10-25 19:16:12 +020030@Deprecated
31@Ignore
Michael Hanldaf86602016-05-12 14:31:52 +020032public class ResourceDaoTest extends BeanConfigTest {
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010033
Michael Hanldaf86602016-05-12 14:31:52 +020034 private static List<Integer> ids = new ArrayList<>();
35
margaretha992178e2017-02-10 13:21:21 +010036// @Autowired
37// private TransactionTemplate txTemplate;
38//
39// @Autowired
40// private ResourceDao<KustvaktResource> resourceDao;
Michael Hanl8abaf9e2016-05-23 16:46:35 +020041
Michael Hanldaf86602016-05-12 14:31:52 +020042 @Override
Michael Hanl8abaf9e2016-05-23 16:46:35 +020043 public void initMethod () {
margarethae7badb32017-06-22 15:16:00 +020044// helper().setupAccount();
Michael Hanldaf86602016-05-12 14:31:52 +020045
margaretha992178e2017-02-10 13:21:21 +010046 List<Class<? extends KustvaktResource>> classes = new ArrayList<>(
Michael Hanldaf86602016-05-12 14:31:52 +020047 KustvaktClassLoader.loadSubTypes(KustvaktResource.class));
48 int size = classes.size();
49 for (int i = 0; i < size; i++) {
margaretha992178e2017-02-10 13:21:21 +010050 Class<? extends KustvaktResource> s = classes.get(i < classes.size() ? i : 0);
Michael Hanldaf86602016-05-12 14:31:52 +020051 try {
52 KustvaktResource r = (KustvaktResource) s.newInstance();
53 r.setName("resource_" + i);
54 r.setPersistentID(r.getName());
margaretha992178e2017-02-10 13:21:21 +010055 Map<String, Object> map = new HashMap<>();
56 map.put("testVar", "testVal_" + i);
57 r.setFields(map);
Michael Hanldaf86602016-05-12 14:31:52 +020058 int id = helper().setupResource(r);
59 ids.add(id);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020060 assertNotEquals(0, new ResourceDao<>(helper().getContext()
61 .getPersistenceClient()).size());
62 }
63 catch (InstantiationException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020064 if (i < classes.size())
65 classes.remove(i);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020066 }
67 catch (KustvaktException | IllegalAccessException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020068 e.printStackTrace();
69 }
70 }
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010071 }
72
Michael Hanldaf86602016-05-12 14:31:52 +020073 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020074 public void testBatchGetResources () throws KustvaktException {
75 ResourceDao dao = new ResourceDao(helper().getContext()
76 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +020077 assertNotEquals(0, dao.size());
78 Collection res = dao.getResources(ids, User.UserFactory.getDemoUser());
79 assertEquals(ids.size(), res.size());
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010080 }
81
Michael Hanl8abaf9e2016-05-23 16:46:35 +020082
Michael Hanldaf86602016-05-12 14:31:52 +020083 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020084 public void testGetResource () throws KustvaktException {
margaretha992178e2017-02-10 13:21:21 +010085 ResourceDao<?> dao = new ResourceDao<>(helper().getContext()
Michael Hanl8abaf9e2016-05-23 16:46:35 +020086 .getPersistenceClient());
87 assertEquals("sqlite", helper().getContext().getPersistenceClient()
88 .getDatabase());
Michael Hanldaf86602016-05-12 14:31:52 +020089
90 assertNotEquals(0, dao.size());
Michael Hanl8abaf9e2016-05-23 16:46:35 +020091 KustvaktResource res = dao.findbyId(ids.get(0),
92 User.UserFactory.getDemoUser());
Michael Hanldaf86602016-05-12 14:31:52 +020093 assertNotNull(res);
margaretha5af82372017-02-16 14:22:58 +010094 Assert.assertEquals(true,res.getField("testVar").toString().startsWith("testVal_"));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010095 }
96
Michael Hanl8abaf9e2016-05-23 16:46:35 +020097
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010098 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020099 public void createCollection () throws KustvaktException {
100 ResourceDao dao = new ResourceDao(helper().getContext()
101 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +0200102 VirtualCollection c = new VirtualCollection("testColl1");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100103 c.addField("key_1", "this is a test");
104 c.addField("key_2", 2);
105
106 User user = User.UserFactory
Michael Hanlc0ed00f2016-06-23 14:33:10 +0200107 .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100108
109 int id = dao.storeResource(c, user);
110
111 KustvaktResource r = dao.findbyId(id, user);
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200112 assertNotEquals(dao.size(), 0);
Michael Hanldaf86602016-05-12 14:31:52 +0200113 assertNotNull(r);
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200114 assertEquals(r.getField("key_1") instanceof String, true);
115 assertEquals(r.getField("key_2") instanceof Integer, true);
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100116 }
117
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200118
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100119 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200120 public void ResourceDataUpdate () throws KustvaktException {
121 ResourceDao dao = new ResourceDao(helper().getContext()
122 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +0200123 VirtualCollection c = new VirtualCollection("testColl2");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100124 c.addField("key_1", "this is a test");
125 c.addField("key_2", 2);
126
127 User user = User.UserFactory
Michael Hanlc0ed00f2016-06-23 14:33:10 +0200128 .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100129
130 int id = dao.storeResource(c, user);
131
132 c.setId(id);
133 c.addField("key_3", -1);
134 int row_update = dao.updateResource(c, user);
135 assert row_update > 0;
136
137 KustvaktResource r = dao.findbyId(id, user);
138 assert dao.size() > 0;
139 assert r != null;
140 assert r.getField("key_1") instanceof String;
141 assert r.getField("key_2") instanceof Integer;
142 assert r.getField("key_3") instanceof Integer;
143
144 }
145}