blob: 25d110b8fcf99925f8b01bd4f746e24d94b48a7f [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;
14import org.junit.Test;
15
Michael Hanlc0ed00f2016-06-23 14:33:10 +020016import de.ids_mannheim.korap.config.Attributes;
Michael Hanldaf86602016-05-12 14:31:52 +020017import de.ids_mannheim.korap.config.BeanConfigTest;
18import de.ids_mannheim.korap.config.KustvaktClassLoader;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010019import de.ids_mannheim.korap.config.TestHelper;
20import de.ids_mannheim.korap.exceptions.KustvaktException;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010021import de.ids_mannheim.korap.resources.KustvaktResource;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010022import de.ids_mannheim.korap.resources.VirtualCollection;
23import de.ids_mannheim.korap.user.User;
Michael Hanldaf86602016-05-12 14:31:52 +020024
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010025/**
26 * @author hanl
27 * @date 26/01/2016
28 */
Michael Hanldaf86602016-05-12 14:31:52 +020029public class ResourceDaoTest extends BeanConfigTest {
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010030
Michael Hanldaf86602016-05-12 14:31:52 +020031 private static List<Integer> ids = new ArrayList<>();
32
margaretha992178e2017-02-10 13:21:21 +010033// @Autowired
34// private TransactionTemplate txTemplate;
35//
36// @Autowired
37// private ResourceDao<KustvaktResource> resourceDao;
Michael Hanl8abaf9e2016-05-23 16:46:35 +020038
Michael Hanldaf86602016-05-12 14:31:52 +020039 @Override
Michael Hanl8abaf9e2016-05-23 16:46:35 +020040 public void initMethod () {
Michael Hanldaf86602016-05-12 14:31:52 +020041 helper().setupAccount();
42
margaretha992178e2017-02-10 13:21:21 +010043 List<Class<? extends KustvaktResource>> classes = new ArrayList<>(
Michael Hanldaf86602016-05-12 14:31:52 +020044 KustvaktClassLoader.loadSubTypes(KustvaktResource.class));
45 int size = classes.size();
46 for (int i = 0; i < size; i++) {
margaretha992178e2017-02-10 13:21:21 +010047 Class<? extends KustvaktResource> s = classes.get(i < classes.size() ? i : 0);
Michael Hanldaf86602016-05-12 14:31:52 +020048 try {
49 KustvaktResource r = (KustvaktResource) s.newInstance();
50 r.setName("resource_" + i);
51 r.setPersistentID(r.getName());
margaretha992178e2017-02-10 13:21:21 +010052 Map<String, Object> map = new HashMap<>();
53 map.put("testVar", "testVal_" + i);
54 r.setFields(map);
Michael Hanldaf86602016-05-12 14:31:52 +020055 int id = helper().setupResource(r);
56 ids.add(id);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020057 assertNotEquals(0, new ResourceDao<>(helper().getContext()
58 .getPersistenceClient()).size());
59 }
60 catch (InstantiationException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020061 if (i < classes.size())
62 classes.remove(i);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020063 }
64 catch (KustvaktException | IllegalAccessException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020065 e.printStackTrace();
66 }
67 }
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010068 }
69
Michael Hanldaf86602016-05-12 14:31:52 +020070 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020071 public void testBatchGetResources () throws KustvaktException {
72 ResourceDao dao = new ResourceDao(helper().getContext()
73 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +020074 assertNotEquals(0, dao.size());
75 Collection res = dao.getResources(ids, User.UserFactory.getDemoUser());
76 assertEquals(ids.size(), res.size());
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010077 }
78
Michael Hanl8abaf9e2016-05-23 16:46:35 +020079
Michael Hanldaf86602016-05-12 14:31:52 +020080 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020081 public void testGetResource () throws KustvaktException {
margaretha992178e2017-02-10 13:21:21 +010082 ResourceDao<?> dao = new ResourceDao<>(helper().getContext()
Michael Hanl8abaf9e2016-05-23 16:46:35 +020083 .getPersistenceClient());
84 assertEquals("sqlite", helper().getContext().getPersistenceClient()
85 .getDatabase());
Michael Hanldaf86602016-05-12 14:31:52 +020086
87 assertNotEquals(0, dao.size());
Michael Hanl8abaf9e2016-05-23 16:46:35 +020088 KustvaktResource res = dao.findbyId(ids.get(0),
89 User.UserFactory.getDemoUser());
Michael Hanldaf86602016-05-12 14:31:52 +020090 assertNotNull(res);
margaretha992178e2017-02-10 13:21:21 +010091 Assert.assertEquals("testVal_0", res.getField("testVar"));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010092 }
93
Michael Hanl8abaf9e2016-05-23 16:46:35 +020094
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010095 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020096 public void createCollection () throws KustvaktException {
97 ResourceDao dao = new ResourceDao(helper().getContext()
98 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +020099 VirtualCollection c = new VirtualCollection("testColl1");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100100 c.addField("key_1", "this is a test");
101 c.addField("key_2", 2);
102
103 User user = User.UserFactory
Michael Hanlc0ed00f2016-06-23 14:33:10 +0200104 .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100105
106 int id = dao.storeResource(c, user);
107
108 KustvaktResource r = dao.findbyId(id, user);
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200109 assertNotEquals(dao.size(), 0);
Michael Hanldaf86602016-05-12 14:31:52 +0200110 assertNotNull(r);
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200111 assertEquals(r.getField("key_1") instanceof String, true);
112 assertEquals(r.getField("key_2") instanceof Integer, true);
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100113 }
114
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200115
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100116 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200117 public void ResourceDataUpdate () throws KustvaktException {
118 ResourceDao dao = new ResourceDao(helper().getContext()
119 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +0200120 VirtualCollection c = new VirtualCollection("testColl2");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100121 c.addField("key_1", "this is a test");
122 c.addField("key_2", 2);
123
124 User user = User.UserFactory
Michael Hanlc0ed00f2016-06-23 14:33:10 +0200125 .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100126
127 int id = dao.storeResource(c, user);
128
129 c.setId(id);
130 c.addField("key_3", -1);
131 int row_update = dao.updateResource(c, user);
132 assert row_update > 0;
133
134 KustvaktResource r = dao.findbyId(id, user);
135 assert dao.size() > 0;
136 assert r != null;
137 assert r.getField("key_1") instanceof String;
138 assert r.getField("key_2") instanceof Integer;
139 assert r.getField("key_3") instanceof Integer;
140
141 }
142}