blob: 04d3eef824b4db90b9e3abfb9360560697e9608a [file] [log] [blame]
Michael Hanlc4446022016-02-12 18:03:17 +01001package de.ids_mannheim.korap.handlers;
2
Michael Hanldaf86602016-05-12 14:31:52 +02003import de.ids_mannheim.korap.config.BeanConfigTest;
4import de.ids_mannheim.korap.config.KustvaktClassLoader;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +01005import de.ids_mannheim.korap.config.TestHelper;
6import de.ids_mannheim.korap.exceptions.KustvaktException;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +01007import de.ids_mannheim.korap.resources.KustvaktResource;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +01008import de.ids_mannheim.korap.resources.VirtualCollection;
9import de.ids_mannheim.korap.user.User;
Michael Hanldaf86602016-05-12 14:31:52 +020010import org.junit.Assert;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010011import org.junit.Test;
12
Michael Hanldaf86602016-05-12 14:31:52 +020013import java.util.ArrayList;
14import java.util.Collection;
15import java.util.List;
16
17import static org.junit.Assert.*;
18import static org.junit.Assert.assertNotEquals;
19
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010020/**
21 * @author hanl
22 * @date 26/01/2016
23 */
Michael Hanldaf86602016-05-12 14:31:52 +020024public class ResourceDaoTest extends BeanConfigTest {
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010025
Michael Hanldaf86602016-05-12 14:31:52 +020026 private static List<Integer> ids = new ArrayList<>();
27
Michael Hanl8abaf9e2016-05-23 16:46:35 +020028
Michael Hanldaf86602016-05-12 14:31:52 +020029 @Override
Michael Hanl8abaf9e2016-05-23 16:46:35 +020030 public void initMethod () {
Michael Hanldaf86602016-05-12 14:31:52 +020031 helper().setupAccount();
32
33 List classes = new ArrayList<>(
34 KustvaktClassLoader.loadSubTypes(KustvaktResource.class));
35 int size = classes.size();
36 for (int i = 0; i < size; i++) {
37 Class s = (Class) classes.get(i < classes.size() ? i : 0);
38 try {
39 KustvaktResource r = (KustvaktResource) s.newInstance();
40 r.setName("resource_" + i);
41 r.setPersistentID(r.getName());
42 int id = helper().setupResource(r);
43 ids.add(id);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020044 assertNotEquals(0, new ResourceDao<>(helper().getContext()
45 .getPersistenceClient()).size());
46 }
47 catch (InstantiationException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020048 if (i < classes.size())
49 classes.remove(i);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020050 }
51 catch (KustvaktException | IllegalAccessException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020052 e.printStackTrace();
53 }
54 }
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010055 }
56
Michael Hanl8abaf9e2016-05-23 16:46:35 +020057
Michael Hanldaf86602016-05-12 14:31:52 +020058 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020059 public void testBatchGetResources () throws KustvaktException {
60 ResourceDao dao = new ResourceDao(helper().getContext()
61 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +020062 assertNotEquals(0, dao.size());
63 Collection res = dao.getResources(ids, User.UserFactory.getDemoUser());
64 assertEquals(ids.size(), res.size());
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010065 }
66
Michael Hanl8abaf9e2016-05-23 16:46:35 +020067
Michael Hanldaf86602016-05-12 14:31:52 +020068 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020069 public void testGetResource () throws KustvaktException {
70 ResourceDao dao = new ResourceDao(helper().getContext()
71 .getPersistenceClient());
72 assertEquals("sqlite", helper().getContext().getPersistenceClient()
73 .getDatabase());
Michael Hanldaf86602016-05-12 14:31:52 +020074
75 assertNotEquals(0, dao.size());
Michael Hanl8abaf9e2016-05-23 16:46:35 +020076 KustvaktResource res = dao.findbyId(ids.get(0),
77 User.UserFactory.getDemoUser());
Michael Hanldaf86602016-05-12 14:31:52 +020078 assertNotNull(res);
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010079 }
80
Michael Hanl8abaf9e2016-05-23 16:46:35 +020081
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010082 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020083 public void createCollection () throws KustvaktException {
84 ResourceDao dao = new ResourceDao(helper().getContext()
85 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +020086 VirtualCollection c = new VirtualCollection("testColl1");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010087 c.addField("key_1", "this is a test");
88 c.addField("key_2", 2);
89
90 User user = User.UserFactory
91 .getUser(TestHelper.getUserCredentials()[0]);
92
93 int id = dao.storeResource(c, user);
94
95 KustvaktResource r = dao.findbyId(id, user);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020096 assertNotEquals(dao.size(), 0);
Michael Hanldaf86602016-05-12 14:31:52 +020097 assertNotNull(r);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020098 assertEquals(r.getField("key_1") instanceof String, true);
99 assertEquals(r.getField("key_2") instanceof Integer, true);
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100100 }
101
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200102
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100103 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200104 public void ResourceDataUpdate () throws KustvaktException {
105 ResourceDao dao = new ResourceDao(helper().getContext()
106 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +0200107 VirtualCollection c = new VirtualCollection("testColl2");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100108 c.addField("key_1", "this is a test");
109 c.addField("key_2", 2);
110
111 User user = User.UserFactory
112 .getUser(TestHelper.getUserCredentials()[0]);
113
114 int id = dao.storeResource(c, user);
115
116 c.setId(id);
117 c.addField("key_3", -1);
118 int row_update = dao.updateResource(c, user);
119 assert row_update > 0;
120
121 KustvaktResource r = dao.findbyId(id, user);
122 assert dao.size() > 0;
123 assert r != null;
124 assert r.getField("key_1") instanceof String;
125 assert r.getField("key_2") instanceof Integer;
126 assert r.getField("key_3") instanceof Integer;
127
128 }
129}