Ignore:
Timestamp:
08/17/13 21:09:17 (11 years ago)
Author:
olhsha
Message:

refactored DAO-s: resource dao do not call each-other methods any more. Only the new Dispatcher method can do it. Not tested.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDaoTest.java

    r3396 r3407  
    2020import eu.dasish.annotation.backend.TestBackendConstants;
    2121import eu.dasish.annotation.backend.TestInstances;
    22 import eu.dasish.annotation.backend.dao.NotebookDao;
    23 import eu.dasish.annotation.backend.dao.PermissionsDao;
    24 import eu.dasish.annotation.backend.dao.SourceDao;
    25 import eu.dasish.annotation.backend.dao.UserDao;
    2622import eu.dasish.annotation.backend.identifiers.AnnotationIdentifier;
    27 import eu.dasish.annotation.backend.identifiers.SourceIdentifier;
    2823import eu.dasish.annotation.backend.identifiers.UserIdentifier;
    2924import eu.dasish.annotation.schema.Annotation;
     
    3126import eu.dasish.annotation.schema.NewOrExistingSourceInfo;
    3227import eu.dasish.annotation.schema.NewOrExistingSourceInfos;
    33 import eu.dasish.annotation.schema.NewSourceInfo;
    3428import eu.dasish.annotation.schema.ResourceREF;
    3529import eu.dasish.annotation.schema.SourceInfo;
     
    3731import java.sql.Timestamp;
    3832import java.util.ArrayList;
    39 import java.util.HashMap;
    4033import java.util.List;
    4134import java.util.Map;
    4235import org.jmock.Expectations;
    43 import org.jmock.Mockery;
    4436import static org.junit.Assert.*;
    45 import org.junit.Ignore;
    4637import org.junit.Test;
    4738import org.junit.runner.RunWith;
     
    5546 */
    5647@RunWith(SpringJUnit4ClassRunner.class)
    57 @ContextConfiguration({"/spring-test-config/dataSource.xml", "/spring-test-config/mockery.xml", "/spring-test-config/mockNotebookDao.xml",
    58     "/spring-test-config/mockUserDao.xml", "/spring-test-config/mockPermissionsDao.xml", "/spring-test-config/mockSourceDao.xml", "/spring-config/annotationDao.xml"})
     48@ContextConfiguration({"/spring-test-config/dataSource.xml", "/spring-config/annotationDao.xml"})
    5949public class JdbcAnnotationDaoTest extends JdbcResourceDaoTest {
    6050
    6151    @Autowired
    62     JdbcAnnotationDao jdbcAnnotationDao;
    63     @Autowired
    64     private PermissionsDao permissionsDao;
    65     @Autowired
    66     private NotebookDao notebookDao;
    67     @Autowired
    68     private SourceDao sourceDao;
    69     @Autowired
    70     private UserDao userDao;   
    71     @Autowired
    72     private Mockery mockery;
     52    JdbcAnnotationDao jdbcAnnotationDao;   
    7353    TestInstances testInstances = new TestInstances();
    7454
     
    178158
    179159        /// dummy test
    180         final Annotation annotaionNull = jdbcAnnotationDao.getAnnotation(null);
     160        final Annotation annotaionNull = jdbcAnnotationDao.getAnnotationWithoutSources(null);
    181161        assertEquals(null, annotaionNull);
    182162        ////
    183163
    184164        final Number testAnnotationID = 2;
    185 
    186 
    187         SourceInfo sourceOneInfo = new SourceInfo();
    188         sourceOneInfo.setLink(TestBackendConstants._TEST_SOURCE_1_LINK);
    189         sourceOneInfo.setRef(TestBackendConstants._TEST_SOURCE_1_EXT_ID);
    190         sourceOneInfo.setVersion(Integer.toString(TestBackendConstants._TEST_SOURCE_1_VERSION_ID));
    191 
    192         SourceInfo sourceTwoInfo = new SourceInfo();
    193         sourceTwoInfo.setLink(TestBackendConstants._TEST_SOURCE_2_LINK);
    194         sourceTwoInfo.setRef(TestBackendConstants._TEST_SOURCE_2_EXT_ID);
    195         sourceTwoInfo.setVersion(Integer.toString(TestBackendConstants._TEST_SOURCE_2_VERSION_ID));
    196 
    197         final List<SourceInfo> sourceInfoList = new ArrayList<SourceInfo>();
    198         sourceInfoList.add(sourceOneInfo);
    199         sourceInfoList.add(sourceTwoInfo);
    200 
    201         NewOrExistingSourceInfo noeSourceOneInfo = new NewOrExistingSourceInfo();
    202         noeSourceOneInfo.setSource(sourceOneInfo);
    203         NewOrExistingSourceInfo noeSourceTwoInfo = new NewOrExistingSourceInfo();
    204         noeSourceTwoInfo.setSource(sourceTwoInfo);
    205 
    206         List<NewOrExistingSourceInfo> noeSourceInfoList = new ArrayList<NewOrExistingSourceInfo>();
    207         noeSourceInfoList.add(noeSourceOneInfo);
    208         noeSourceInfoList.add(noeSourceTwoInfo);
    209         final NewOrExistingSourceInfos noeSourceInfos = new NewOrExistingSourceInfos();
    210         noeSourceInfos.getTarget().addAll(noeSourceInfoList);
    211 
    212         mockery.checking(new Expectations() {
    213             {
    214                 oneOf(sourceDao).getSourceInfos(with(aNonNull(List.class))); // retrieveSourceIDs is tested, so we can put "any" instead of its result
    215                 will(returnValue(sourceInfoList));
    216 
    217             }
    218         });
    219 
    220 
    221         final Annotation annotation = jdbcAnnotationDao.getAnnotation(testAnnotationID);
     165        final Annotation annotation = jdbcAnnotationDao.getAnnotationWithoutSources(testAnnotationID);
    222166        assertEquals(TestBackendConstants._TEST_ANNOT_2_HEADLINE, annotation.getHeadline());
    223167        assertEquals(String.valueOf(TestBackendConstants._TEST_ANNOT_2_OWNER), annotation.getOwner().getRef());
    224168        assertEquals(TestBackendConstants._TEST_ANNOT_2_BODY, annotation.getBody().getAny().get(0)); // when the body is elaborated it may be changed
    225 
    226         assertEquals(sourceOneInfo.getRef(), annotation.getTargetSources().getTarget().get(0).getSource().getRef());
    227         assertEquals(sourceOneInfo.getLink(), annotation.getTargetSources().getTarget().get(0).getSource().getLink());
    228         assertEquals(sourceOneInfo.getVersion(), annotation.getTargetSources().getTarget().get(0).getSource().getVersion());
    229 
    230         assertEquals(sourceTwoInfo.getRef(), annotation.getTargetSources().getTarget().get(1).getSource().getRef());
    231         assertEquals(sourceTwoInfo.getLink(), annotation.getTargetSources().getTarget().get(1).getSource().getLink());
    232         assertEquals(sourceTwoInfo.getVersion(), annotation.getTargetSources().getTarget().get(1).getSource().getVersion());
    233 
    234169        assertEquals(TestBackendConstants._TEST_ANNOT_2_EXT, annotation.getURI());
    235 
    236170        assertEquals(TestBackendConstants._TEST_ANNOT_2_TIME_STAMP, annotation.getTimeStamp().toString());
    237 
    238 
    239171    }
    240172
     
    244176    @Test
    245177    public void testDeleteAnnotation() throws SQLException {
    246         System.out.println("deleteAnnotation");
    247         final List<Number> sourceIDs = new ArrayList<Number>();
    248         sourceIDs.add(3);
    249         sourceIDs.add(4);
    250 
    251         mockery.checking(new Expectations() {
    252             {
    253                 oneOf(sourceDao).deleteSource(sourceIDs.get(0));
    254                 will(returnValue(0));
    255                
    256                 oneOf(sourceDao).deleteSource(sourceIDs.get(1));
    257                 will(returnValue(1));
    258             }
    259         });
    260 
     178        System.out.println("deleteAnnotation");
     179        // result[0] = # removed "annotations_principals_perissions" rows
     180        // result[1] = # removed "annotatiobs_target_sources" rows
     181        // result[2] = # removed annotation rows (should be 1)
     182       
    261183        int[] result = jdbcAnnotationDao.deleteAnnotation(5);
    262 //       result[0] = # removed notebooks_annotations rows
    263 //       result[1] = # removed "annotations_principals_perissions" rows
    264 //       result[2] = # removed "annotatiobs_target_sources" rows
    265 //       result[3] = # SAFELY removed "target_sources" rows (only unused)
    266 //       result[4] = # removed annotation rows (should be 1)
    267        
    268         assertEquals(1, result[0]);
    269         assertEquals(3, result[1]);
    270         assertEquals(2, result[2]);
    271         assertEquals(1, result[3]);
    272         assertEquals(1, result[4]);
    273        
    274        
     184        assertEquals(3, result[0]);
     185        assertEquals(2, result[1]);
     186        assertEquals(1, result[2]);
    275187       
    276188        // now, try to delete the same annotation one more time
     
    281193        assertEquals(0, result[1]);
    282194        assertEquals(0, result[2]);
    283         assertEquals(0, result[3]);
    284         assertEquals(0, result[4]);
    285195    }
    286196
     
    299209        assertEquals(6, newAnnotationID);
    300210       
    301         Map<String, Object> addedAnnotation= jdbcAnnotationDao.getRawAnnotation(6);
    302         assertFalse(null == addedAnnotation.get("external_id"));
    303         assertFalse(null == addedAnnotation.get("time_stamp"));
    304         assertEquals(5, addedAnnotation.get("owner_id"));
    305         assertEquals(annotationToAdd.getBody().getAny().get(0), addedAnnotation.get("body_xml")); // TODO: to be changed after serialization is fixed
    306         assertEquals(annotationToAdd.getHeadline(), addedAnnotation.get("headline"));
     211        Annotation addedAnnotation= jdbcAnnotationDao.getAnnotationWithoutSources(6);
     212        assertFalse(null == addedAnnotation.getURI());
     213        assertFalse(null == addedAnnotation.getTimeStamp());
     214        assertEquals(5, addedAnnotation.getOwner().getRef());
     215        assertEquals(annotationToAdd.getBody().getAny().get(0), addedAnnotation.getBody().getAny().get(0)); // TODO: to be changed after serialization is fixed
     216        assertEquals(annotationToAdd.getHeadline(), addedAnnotation.getHeadline());
    307217    }
    308218
     
    378288        //////////////////////////////////////////
    379289        // TEST 1
    380         final String link = "nl.wikipedia.org";
    381         final List<Number> sourceIDs = new ArrayList<Number>();
    382         sourceIDs.add(1);
    383         sourceIDs.add(2);
    384        
    385        
    386         mockery.checking(new Expectations() {
    387             {
    388                 oneOf(sourceDao).getSourcesForLink(link);
    389                 will(returnValue(sourceIDs));
    390             }
    391         });
    392         List<Number> result_1 = jdbcAnnotationDao.getFilteredAnnotationIDs(link, null, null, null, null, null, null);       
     290        //final String link = "nl.wikipedia.org";
     291        final List<Number> annotationIDs = new ArrayList<Number>();
     292        annotationIDs.add(2);
     293        annotationIDs.add(3);
     294       
     295        List<Number> result_1 = jdbcAnnotationDao.getFilteredAnnotationIDs(annotationIDs, null, null, null, null, null, null);       
    393296        assertEquals(2, result_1.size());
    394297        assertEquals(2, result_1.get(0));
    395298        assertEquals(3, result_1.get(1));
    396299       
    397         ///////////////////////////////////////////////
    398         // TEST 2       
    399         mockery.checking(new Expectations() {
    400             {
    401                 oneOf(sourceDao).getSourcesForLink(link);
    402                 will(returnValue(sourceIDs));
    403             }
    404         });
    405         List<Number> result_2 = jdbcAnnotationDao.getFilteredAnnotationIDs(link, "some html", null, null, null, null, null);       
     300       
     301        List<Number> result_2 = jdbcAnnotationDao.getFilteredAnnotationIDs(annotationIDs, "some html", null, null, null, null, null);       
    406302        assertEquals(2, result_2.size());
    407303        assertEquals(2, result_2.get(0));
    408304        assertEquals(3, result_2.get(1));
    409305       
    410         ///////////////////////////////////////////////
    411         // TEST 3
    412         final UserIdentifier owner = new UserIdentifier("00000000-0000-0000-0000-000000000111");
    413        
    414        
    415          mockery.checking(new Expectations() {
    416             {
    417                 oneOf(sourceDao).getSourcesForLink(link);
    418                 will(returnValue(sourceIDs));
    419                
    420                 oneOf(userDao).getInternalID(owner);
    421                 will(returnValue(3));
    422             }
    423         });
     306       
    424307       
    425         List<Number> result_3 = jdbcAnnotationDao.getFilteredAnnotationIDs(link, "some html", null, null, owner, null, null);       
     308        List<Number> result_3 = jdbcAnnotationDao.getFilteredAnnotationIDs(annotationIDs, "some html", null, null, 1, null, null);       
    426309        assertEquals(1, result_3.size());
    427310        assertEquals(2, result_3.get(0));
    428311       
    429          ///////////////////////////////////////////////
    430         // TEST 4
    431312       
    432          mockery.checking(new Expectations() {
    433             {
    434                 oneOf(sourceDao).getSourcesForLink(link);
    435                 will(returnValue(sourceIDs));
    436                
    437                 oneOf(userDao).getInternalID(owner);
    438                 will(returnValue(3));
    439             }
    440         });
    441313        Timestamp after = new Timestamp(0);
    442314        Timestamp before = new Timestamp(System.currentTimeMillis()); 
    443         List<Number> result_4 = jdbcAnnotationDao.getFilteredAnnotationIDs(link, "some html", null, null, owner, after, before);       
     315        List<Number> result_4 = jdbcAnnotationDao.getFilteredAnnotationIDs(annotationIDs, "some html", null, null, 1, after, before);       
    444316        assertEquals(1, result_4.size());
    445317        assertEquals(2, result_4.get(0));
    446318       
    447           ///////////////////////////////////////////////
    448         // TEST 5
    449        
    450          mockery.checking(new Expectations() {
    451             {
    452                 oneOf(sourceDao).getSourcesForLink(link);
    453                 will(returnValue(sourceIDs));
    454                
    455                 oneOf(userDao).getInternalID(owner);
    456                 will(returnValue(3));
    457             }
    458         });
     319       
    459320        Timestamp after_1 = new Timestamp(System.currentTimeMillis());       
    460         List<Number> result_5 = jdbcAnnotationDao.getFilteredAnnotationIDs(link, "some html", null, null, owner, after_1, null);       
     321        List<Number> result_5 = jdbcAnnotationDao.getFilteredAnnotationIDs(annotationIDs, "some html", null, null, 1, after_1, null);       
    461322        assertEquals(0, result_5.size());
    462323       
Note: See TracChangeset for help on using the changeset viewer.