blob: 15bdd4f0a8ed18ea71103af43923b0aa3406f186 [file] [log] [blame]
Michael Hanlc4446022016-02-12 18:03:17 +01001package de.ids_mannheim.korap.handlers;
2
Michael Hanlc0ed00f2016-06-23 14:33:10 +02003import de.ids_mannheim.korap.config.Attributes;
Michael Hanldaf86602016-05-12 14:31:52 +02004import de.ids_mannheim.korap.config.BeanConfigTest;
5import de.ids_mannheim.korap.config.KustvaktClassLoader;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +01006import de.ids_mannheim.korap.config.TestHelper;
7import de.ids_mannheim.korap.exceptions.KustvaktException;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +01008import de.ids_mannheim.korap.resources.KustvaktResource;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +01009import de.ids_mannheim.korap.resources.VirtualCollection;
10import de.ids_mannheim.korap.user.User;
Michael Hanldaf86602016-05-12 14:31:52 +020011import org.junit.Assert;
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010012import org.junit.Test;
13
Michael Hanldaf86602016-05-12 14:31:52 +020014import java.util.ArrayList;
15import java.util.Collection;
16import java.util.List;
17
18import static org.junit.Assert.*;
19import static org.junit.Assert.assertNotEquals;
20
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010021/**
22 * @author hanl
23 * @date 26/01/2016
24 */
Michael Hanldaf86602016-05-12 14:31:52 +020025public class ResourceDaoTest extends BeanConfigTest {
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010026
Michael Hanldaf86602016-05-12 14:31:52 +020027 private static List<Integer> ids = new ArrayList<>();
28
Michael Hanl8abaf9e2016-05-23 16:46:35 +020029
Michael Hanldaf86602016-05-12 14:31:52 +020030 @Override
Michael Hanl8abaf9e2016-05-23 16:46:35 +020031 public void initMethod () {
Michael Hanldaf86602016-05-12 14:31:52 +020032 helper().setupAccount();
33
34 List classes = new ArrayList<>(
35 KustvaktClassLoader.loadSubTypes(KustvaktResource.class));
36 int size = classes.size();
37 for (int i = 0; i < size; i++) {
38 Class s = (Class) classes.get(i < classes.size() ? i : 0);
39 try {
40 KustvaktResource r = (KustvaktResource) s.newInstance();
41 r.setName("resource_" + i);
42 r.setPersistentID(r.getName());
43 int id = helper().setupResource(r);
44 ids.add(id);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020045 assertNotEquals(0, new ResourceDao<>(helper().getContext()
46 .getPersistenceClient()).size());
47 }
48 catch (InstantiationException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020049 if (i < classes.size())
50 classes.remove(i);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020051 }
52 catch (KustvaktException | IllegalAccessException e) {
Michael Hanldaf86602016-05-12 14:31:52 +020053 e.printStackTrace();
54 }
55 }
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010056 }
57
Michael Hanl8abaf9e2016-05-23 16:46:35 +020058
Michael Hanldaf86602016-05-12 14:31:52 +020059 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020060 public void testBatchGetResources () throws KustvaktException {
61 ResourceDao dao = new ResourceDao(helper().getContext()
62 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +020063 assertNotEquals(0, dao.size());
64 Collection res = dao.getResources(ids, User.UserFactory.getDemoUser());
65 assertEquals(ids.size(), res.size());
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010066 }
67
Michael Hanl8abaf9e2016-05-23 16:46:35 +020068
Michael Hanldaf86602016-05-12 14:31:52 +020069 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020070 public void testGetResource () throws KustvaktException {
71 ResourceDao dao = new ResourceDao(helper().getContext()
72 .getPersistenceClient());
73 assertEquals("sqlite", helper().getContext().getPersistenceClient()
74 .getDatabase());
Michael Hanldaf86602016-05-12 14:31:52 +020075
76 assertNotEquals(0, dao.size());
Michael Hanl8abaf9e2016-05-23 16:46:35 +020077 KustvaktResource res = dao.findbyId(ids.get(0),
78 User.UserFactory.getDemoUser());
Michael Hanldaf86602016-05-12 14:31:52 +020079 assertNotNull(res);
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010080 }
81
Michael Hanl8abaf9e2016-05-23 16:46:35 +020082
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010083 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +020084 public void createCollection () throws KustvaktException {
85 ResourceDao dao = new ResourceDao(helper().getContext()
86 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +020087 VirtualCollection c = new VirtualCollection("testColl1");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010088 c.addField("key_1", "this is a test");
89 c.addField("key_2", 2);
90
91 User user = User.UserFactory
Michael Hanlc0ed00f2016-06-23 14:33:10 +020092 .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +010093
94 int id = dao.storeResource(c, user);
95
96 KustvaktResource r = dao.findbyId(id, user);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020097 assertNotEquals(dao.size(), 0);
Michael Hanldaf86602016-05-12 14:31:52 +020098 assertNotNull(r);
Michael Hanl8abaf9e2016-05-23 16:46:35 +020099 assertEquals(r.getField("key_1") instanceof String, true);
100 assertEquals(r.getField("key_2") instanceof Integer, true);
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100101 }
102
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200103
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100104 @Test
Michael Hanl8abaf9e2016-05-23 16:46:35 +0200105 public void ResourceDataUpdate () throws KustvaktException {
106 ResourceDao dao = new ResourceDao(helper().getContext()
107 .getPersistenceClient());
Michael Hanldaf86602016-05-12 14:31:52 +0200108 VirtualCollection c = new VirtualCollection("testColl2");
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100109 c.addField("key_1", "this is a test");
110 c.addField("key_2", 2);
111
112 User user = User.UserFactory
Michael Hanlc0ed00f2016-06-23 14:33:10 +0200113 .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
Michael Hanlcf9c6ea2016-02-06 15:04:13 +0100114
115 int id = dao.storeResource(c, user);
116
117 c.setId(id);
118 c.addField("key_3", -1);
119 int row_update = dao.updateResource(c, user);
120 assert row_update > 0;
121
122 KustvaktResource r = dao.findbyId(id, user);
123 assert dao.size() > 0;
124 assert r != null;
125 assert r.getField("key_1") instanceof String;
126 assert r.getField("key_2") instanceof Integer;
127 assert r.getField("key_3") instanceof Integer;
128
129 }
130}