source: DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcTargetDaoTest.java @ 4181

Last change on this file since 4181 was 4181, checked in by olhsha, 10 years ago

a fragments (of a target) is now a part of the attribute link. The Dao's and unit tests are updated and work. Fixed corrupted pom (there was ill glass-fish dependency that spoiled authentication)

File size: 8.7 KB
Line 
1/*
2 * Copyright (C) 2013 DASISH
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
17 */
18package eu.dasish.annotation.backend.dao.impl;
19
20import eu.dasish.annotation.backend.TestBackendConstants;
21import eu.dasish.annotation.schema.Target;
22import eu.dasish.annotation.schema.TargetInfo;
23import java.sql.SQLException;
24import java.util.ArrayList;
25import java.util.List;
26import java.util.Map;
27import java.util.UUID;
28import org.junit.Test;
29import static org.junit.Assert.*;
30import org.junit.Ignore;
31import org.junit.runner.RunWith;
32import org.springframework.beans.factory.annotation.Autowired;
33import org.springframework.test.context.ContextConfiguration;
34import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
35
36/**
37 *
38 * @author olhsha
39 */
40@RunWith(SpringJUnit4ClassRunner.class)
41@ContextConfiguration({"/spring-test-config/dataSource.xml", "/spring-config/TargetDao.xml"})
42public class JdbcTargetDaoTest extends JdbcResourceDaoTest {
43
44    @Autowired
45    JdbcTargetDao jdbcTargetDao;
46   
47     /**
48     * Test of stringURItoExternalID method
49     * public String stringURItoExternalID(String uri);
50     */
51    @Test
52    public void testStringURItoExternalID() {
53        System.out.println("test stringURItoExternalID");
54        jdbcTargetDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI_Targets);
55        String randomUUID = UUID.randomUUID().toString();
56        String uri = TestBackendConstants._TEST_SERVLET_URI_Targets + randomUUID;
57        String externalID = jdbcTargetDao.stringURItoExternalID(uri);
58        assertEquals(randomUUID, externalID);
59    }
60   
61    /**
62     * Test of externalIDtoURI method
63     * public String externalIDtoURI(String externalID);
64     */
65    @Test
66    public void testExternalIDtoURI() {
67        System.out.println("test stringURItoExternalID");
68        jdbcTargetDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI_Targets);
69        String randomUUID = UUID.randomUUID().toString();
70        String uri = TestBackendConstants._TEST_SERVLET_URI_Targets+randomUUID;
71        String uriResult = jdbcTargetDao.externalIDtoURI(randomUUID);
72        assertEquals(uri, uriResult);
73    }
74
75    /**
76     * Test of getExternalID method, of class JdbcTargetDao.
77     */
78    @Test
79    public void testGetExternalID() {
80        System.out.println("getExternalID");
81        Number internalID = 1;
82        UUID result = jdbcTargetDao.getExternalID(internalID);
83        assertEquals(TestBackendConstants._TEST_Target_1_EXT_ID, result.toString());
84    }
85
86    /**
87     * Test of getInternalID method, of class JdbcTargetDao.
88     */
89    @Test
90    public void testGetInternalId() {
91        System.out.println("getInternalId");
92        UUID externalID = UUID.fromString(TestBackendConstants._TEST_Target_1_EXT_ID);
93        Number expResult = 1;
94        Number result = jdbcTargetDao.getInternalID(externalID);
95        assertEquals(expResult, result);
96    }
97   
98    /**
99     * Test of getInternalIDFromURI method,
100     * public Number getInternalIDFromURI(UUID externalID);
101     */
102    @Test
103    public void testGetInternalIDFRomURI() {
104        System.out.println("test getInternalIDFromURI");
105        jdbcTargetDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI_Targets);
106        String uri = TestBackendConstants._TEST_SERVLET_URI_Targets+TestBackendConstants._TEST_Target_1_EXT_ID;
107        Number result = jdbcTargetDao.getInternalIDFromURI(uri);
108        assertEquals(1, result.intValue());
109    }
110   
111
112    /**
113     * Test of getTarget method, of class JdbcTargetDao.
114     */
115    @Test
116    public void testGetTarget() {
117        System.out.println("getTarget");
118        jdbcTargetDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI_Targets);
119        Target result = jdbcTargetDao.getTarget(1);
120        assertEquals(TestBackendConstants._TEST_SERVLET_URI_Targets+TestBackendConstants._TEST_Target_1_EXT_ID, result.getURI());
121        assertEquals(TestBackendConstants._TEST_Target_1_LINK+"#"+TestBackendConstants._TEST_Target_1_FRAGMENT, result.getLink());
122        assertEquals(TestBackendConstants._TEST_Target_1_VERSION, result.getVersion());
123        // TODO :add time stamp test
124       
125    }
126
127    /**
128     * Test of deleteTarget method, of class JdbcTargetDao.
129     */
130    @Test
131    public void testDeleteTarget() {
132        System.out.println("deleteTarget");
133        // test 1
134        // remove the rows from the joint table to keep integrity
135        int result = jdbcTargetDao.deleteTarget(1); //the Target is in use, should not be deleted
136        assertEquals(0, result); 
137
138        // test 2
139        int resultTwo = jdbcTargetDao.deleteTarget(6);// the Target will be deleted because it is not referred by any annotation
140        assertEquals(1, resultTwo); 
141    }
142   
143 
144
145    /**
146     * Test of addTargetCachedRepresentation method, of class JdbcTargetDao.
147     */
148    @Test
149    public void testAddTargetCachedRepresentation() throws SQLException{
150       System.out.println("test addTargetCachedRepresentation");
151       assertEquals(1, jdbcTargetDao.addTargetCachedRepresentation(6, 7, "#firstrow"));
152       // content test
153       Map<Number, String> pairs = jdbcTargetDao.getCachedRepresentationFragmentPairs(6) ;
154       assertEquals(1, pairs.size());
155       assertEquals("#firstrow", pairs.get(7));
156    }
157   
158    /**
159     * Test of addTarget method, of class JdbcTargetDao.
160     */
161    @Test
162    public void testAddTarget() throws SQLException {
163        System.out.println("addTarget");
164
165        Target freshTarget = new Target();
166        freshTarget.setLink(TestBackendConstants._TEST_Target_1_LINK+"#Het_ontwerp");
167        freshTarget.setVersion(TestBackendConstants._TEST_Target_1_VERSION);
168        freshTarget.setLastModified(null);
169       
170        Number result = jdbcTargetDao.addTarget(freshTarget);
171        assertEquals(8, result);
172        // detailed checking
173        Target addedTarget = jdbcTargetDao.getTarget(result);
174        assertEquals(TestBackendConstants._TEST_Target_1_LINK+"#Het_ontwerp", addedTarget.getLink());
175        assertEquals(TestBackendConstants._TEST_Target_1_VERSION, addedTarget.getVersion());
176        assertTrue(addedTarget.getURI().startsWith(TestBackendConstants._TEST_SERVLET_URI_Targets));
177    }
178
179    /**
180     * Test of getTargetInfos method, of class JdbcTargetDao.
181     */
182    @Test
183    public void testGetTargetInfos() {
184        System.out.println("getTargetInfos");       
185        jdbcTargetDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI_Targets);
186        List<Number> test = new ArrayList<Number>();
187        test.add(1);
188        test.add(2);
189        List<TargetInfo> result = jdbcTargetDao.getTargetInfos(test);
190        assertEquals(2, result.size());
191        assertEquals(TestBackendConstants._TEST_SERVLET_URI_Targets+TestBackendConstants._TEST_Target_1_EXT_ID, result.get(0).getRef());
192        assertEquals(TestBackendConstants._TEST_SERVLET_URI_Targets+TestBackendConstants._TEST_Target_2_EXT_ID, result.get(1).getRef());
193        assertEquals(TestBackendConstants._TEST_Target_1_VERSION, result.get(0).getVersion());
194        assertEquals(TestBackendConstants._TEST_Target_2_VERSION, result.get(1).getVersion());
195        assertEquals(TestBackendConstants._TEST_Target_1_LINK+"#"+TestBackendConstants._TEST_Target_1_FRAGMENT, result.get(0).getLink());
196        assertEquals(TestBackendConstants._TEST_Target_2_LINK+"#Vroege_werk", result.get(1).getLink());
197
198    }
199
200    /**
201     * test public List<Number> getTargetsForLink(String link)
202     *
203     *
204     */
205    @Test
206    public void tesGetTargetsReferringTo() {
207        System.out.println(" test getTargetsReferringTo");
208
209        String substring = "http://nl.wikipedia.org";
210        List<Number> result = jdbcTargetDao.getTargetsReferringTo(substring);
211        assertEquals(2, result.size());
212        assertEquals(1, result.get(0));
213        assertEquals(2, result.get(1));
214    }
215
216    /* Test of getCachedRepresentations method, of class JdbcTargetDao.
217     */
218    @Test
219    public void testGetCachedRepresentations() {
220        System.out.println("test getCachedRepresentations");
221        Number TargetID = 1;
222        List<Number> result = jdbcTargetDao.getCachedRepresentations(TargetID);
223        assertEquals(1, result.get(0));
224        assertEquals(2, result.get(1));
225    }
226}
Note: See TracBrowser for help on using the repository browser.