Ignore:
Timestamp:
12/22/10 13:27:06 (13 years ago)
Author:
patdui
Message:
  • added resourceType facet and added a list of resources on the show result page.
  • added i18n properties
  • fixed some olac facets supporting multiple patterns to match a facet
File:
1 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo_webapp/src/test/java/eu/clarin/cmdi/vlo/importer/CMDIDataProcessorTest.java

    r996 r1007  
    66
    77import java.io.File;
    8 import java.io.IOException;
    98import java.util.ArrayList;
    109import java.util.Collection;
     
    1211import java.util.List;
    1312
    14 import org.apache.commons.io.FileUtils;
    1513import org.apache.solr.common.SolrInputDocument;
    16 import org.junit.AfterClass;
    17 import org.junit.BeforeClass;
    1814import org.junit.Test;
    19 import org.springframework.beans.factory.BeanFactory;
    20 import org.springframework.context.support.ClassPathXmlApplicationContext;
    21 
    22 public class CMDIDataProcessorTest {
    23 
    24     private static File testDir;
     15
     16public class CMDIDataProcessorTest extends ImporterTestcase {
    2517
    2618    private CMDIDataProcessor getDataParser(FacetMapping map) {
     
    7769        CMDIData data = processor.process(cmdiFile);
    7870        assertEquals("test-hdl:1839/00-0000-0000-0000-0001-D", data.getId());
    79         List<String> resources = data.getResources();
     71        List<Resource> resources = data.getMetadataResources();
    8072        assertEquals(3, resources.size());
     73        Resource res = resources.get(0);
     74        assertEquals("../acqui_data/Corpusstructure/acqui.imdi.cmdi", res.getResourceName());
     75        assertEquals(null, res.getMimeType());
     76        assertEquals(0, data.getDataResources().size());
    8177        SolrInputDocument doc = data.getSolrDocument();
    8278        assertNull(doc);
     
    9793        content += "      <ResourceProxyList>\n";
    9894        content += "         <ResourceProxy id=\"d314e408\">\n";
    99         content += "            <ResourceType>Resource</ResourceType>\n";
     95        content += "            <ResourceType mimetype=\"video/x-mpeg1\" >Resource</ResourceType>\n";
    10096        content += "            <ResourceRef>../Media/elan-example1.mpg</ResourceRef>\n";
    10197        content += "         </ResourceProxy>\n";
    10298        content += "         <ResourceProxy id=\"d314e471\">\n";
    103         content += "            <ResourceType>Resource</ResourceType>\n";
    104         content += "            <ResourceRef>../Media/elan-example1.mp4</ResourceRef>\n";
     99        content += "            <ResourceType mimetype=\"audio/mpeg\" >Resource</ResourceType>\n";
     100        content += "            <ResourceRef>../Media/elan-example1.mp3</ResourceRef>\n";
    105101        content += "         </ResourceProxy>\n";
    106102        content += "      </ResourceProxyList>\n";
     
    373369        CMDIData data = processor.process(cmdiFile);
    374370        assertEquals("test-hdl:1839/00-0000-0000-0009-294C-9", data.getId());
    375         List<String> resources = data.getResources();
     371        List<Resource> resources = data.getMetadataResources();
    376372        assertEquals(0, resources.size());
     373        List<Resource> dataResources = data.getDataResources();
     374        assertEquals(2, dataResources.size());
     375        Resource res = dataResources.get(0);
     376        assertEquals("../Media/elan-example1.mpg", res.getResourceName());
     377        assertEquals("video/x-mpeg1", res.getMimeType());
     378        res = dataResources.get(1);
     379        assertEquals("../Media/elan-example1.mp3", res.getResourceName());
     380        assertEquals("audio/mpeg", res.getMimeType());
    377381        SolrInputDocument doc = data.getSolrDocument();
    378382        assertNotNull(doc);
     
    463467        CMDIData data = processor.process(cmdiFile);
    464468        assertEquals("test-hdl:1839/00-0000-0000-0009-294C-9", data.getId());
    465         List<String> resources = data.getResources();
     469        List<Resource> resources = data.getMetadataResources();
    466470        assertEquals(0, resources.size());
    467471        SolrInputDocument doc = data.getSolrDocument();
     
    518522        content += "         <language olac-language=\"x-sil-CHN\"/>\n";
    519523        content += "         <language>Chinese</language>\n";
    520         content += "         <subject>Kuna</subject>\n";
     524        content += "         <subject olac-linguistic-field=\"testSubject\">Kuna</subject>\n";
    521525        content += "         <type olac-linguistic-type=\"Transcription\"/>\n";
    522526        content += "      </OLAC-DcmiTerms>\n";
     
    528532        CMDIData data = processor.process(cmdiFile);
    529533        assertEquals("oai:ailla.utexas.edu:1", data.getId());
    530         List<String> resources = data.getResources();
     534        List<Resource> resources = data.getMetadataResources();
    531535        assertEquals(0, resources.size());
     536        List<Resource> dataResources = data.getDataResources();
     537        assertEquals(0, dataResources.size());
    532538        SolrInputDocument doc = data.getSolrDocument();
    533539        assertNotNull(doc);
    534         assertEquals(3, doc.getFieldNames().size());
     540        assertEquals(4, doc.getFieldNames().size());
    535541        assertEquals(null, doc.getFieldValue("name"));
    536542        assertEquals(null, doc.getFieldValue("continent"));
     
    540546        assertEquals(null, doc.getFieldValue("organisation"));
    541547        assertEquals("transcription", doc.getFieldValue("genre"));
    542         //  assertEquals("Kuna", doc.getFieldValue("subject"));
     548        assertEquals("testsubject", doc.getFieldValue("subject"));
    543549        Collection<Object> fieldValues = doc.getFieldValues("description");
    544550        assertEquals(3, fieldValues.size());
     
    555561                + "Kuna in origin. All are woven together and a moral is provided. Pedro Arias performed "
    556562                + "this story before a gathered audience in the morning..\n      ", descriptions.get(2).toString());
     563    }
     564
     565    @Test
     566    public void testOlacMultiFacets() throws Exception {
     567        String content = "";
     568        content += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
     569        content += "<CMD>\n";
     570        content += "   <Components>\n";
     571        content += "      <OLAC-DcmiTerms>\n";
     572        content += "         <subject olac-linguistic-field=\"testSubject\">Kuna</subject>\n";
     573        content += "         <subject dcterms-type=\"LCSH\">testSubjectFallback</subject>\n";
     574        content += "         <spatial dcterms-type=\"ISO3166\">testCountry1</spatial>\n";
     575        content += "         <coverage dcterms-type=\"ISO3166\">testCountry2</coverage>\n";
     576        content += "         <language olac-language=\"language1\">test1</language>\n";
     577        content += "         <subject olac-language=\"language2\">test2</subject>\n";
     578        content += "      </OLAC-DcmiTerms>\n";
     579        content += "   </Components>\n";
     580        content += "</CMD>\n";
     581
     582        File cmdiFile = createCmdiFile("testOlac", content);
     583        CMDIDataProcessor processor = getDataParser(getOlacFacetMap());
     584        CMDIData data = processor.process(cmdiFile);
     585        SolrInputDocument doc = data.getSolrDocument();
     586        assertEquals(1, doc.getFieldValues("subject").size());
     587        assertEquals("testsubject", doc.getFieldValue("subject"));
     588        assertEquals(1, doc.getFieldValues("country").size());
     589        assertEquals("testCountry1", doc.getFieldValue("country"));
     590        assertEquals(1, doc.getFieldValues("language").size());
     591        assertEquals("language1", doc.getFieldValue("language"));
     592
     593        content = "";
     594        content += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
     595        content += "<CMD>\n";
     596        content += "   <Components>\n";
     597        content += "      <OLAC-DcmiTerms>\n";
     598        content += "         <subject dcterms-type=\"LCSH\">testSubjectFallback</subject>\n";
     599        content += "         <coverage dcterms-type=\"ISO3166\">testCountry2</coverage>\n";
     600        content += "         <subject olac-language=\"language2\">test2</subject>\n";
     601        content += "      </OLAC-DcmiTerms>\n";
     602        content += "   </Components>\n";
     603        content += "</CMD>\n";
     604
     605        cmdiFile = createCmdiFile("testOlac", content);
     606        processor = getDataParser(getOlacFacetMap());
     607        data = processor.process(cmdiFile);
     608        doc = data.getSolrDocument();
     609        assertEquals(1, doc.getFieldValues("subject").size());
     610        assertEquals("testsubjectfallback", doc.getFieldValue("subject"));
     611        assertEquals(1, doc.getFieldValues("country").size());
     612        assertEquals("testCountry2", doc.getFieldValue("country"));
     613        assertEquals(1, doc.getFieldValues("language").size());
     614        assertEquals("language2", doc.getFieldValue("language"));
     615
     616        content = "";
     617        content += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
     618        content += "<CMD>\n";
     619        content += "   <Components>\n";
     620        content += "      <OLAC-DcmiTerms>\n";
     621        content += "         <subject dcterms-type=\"LCSH\">testSubjectFallback</subject>\n";
     622        content += "         <subject olac-linguistic-field=\"testSubject\">Kuna</subject>\n";
     623        content += "         <coverage dcterms-type=\"ISO3166\">testCountry2</coverage>\n";
     624        content += "         <spatial dcterms-type=\"ISO3166\">testCountry1</spatial>\n";
     625        content += "         <subject olac-language=\"language2\">test2</subject>\n";
     626        content += "         <language olac-language=\"language1\">test1</language>\n";
     627        content += "      </OLAC-DcmiTerms>\n";
     628        content += "   </Components>\n";
     629        content += "</CMD>\n";
     630
     631        cmdiFile = createCmdiFile("testOlac", content);
     632        processor = getDataParser(getOlacFacetMap());
     633        data = processor.process(cmdiFile);
     634        doc = data.getSolrDocument();
     635        assertEquals(1, doc.getFieldValues("subject").size());
     636        assertEquals("testsubject", doc.getFieldValue("subject"));
     637        assertEquals(1, doc.getFieldValues("country").size());
     638        assertEquals("testCountry1", doc.getFieldValue("country"));
     639        assertEquals(1, doc.getFieldValues("language").size());
     640        assertEquals("language1", doc.getFieldValue("language"));
    557641    }
    558642
     
    593677        CMDIData data = processor.process(cmdiFile);
    594678        assertEquals("collection_ATILF_Resources.cmdi", data.getId());
    595         List<String> resources = data.getResources();
     679        List<Resource> resources = data.getMetadataResources();
    596680        assertEquals(9, resources.size());
     681        Resource res = resources.get(0);
     682        assertEquals("ATILF_Resources/0/oai_atilf_inalf_fr_0001.xml.cmdi", res.getResourceName());
     683        assertEquals(null, res.getMimeType());
     684        assertEquals(0, data.getDataResources().size());
    597685        SolrInputDocument doc = data.getSolrDocument();
    598686        assertNull(doc);
    599 
     687        List<Resource> dataResources = data.getDataResources();
     688        assertEquals(0, dataResources.size());
    600689    }
    601690
     
    641730        CMDIData data = processor.process(cmdiFile);
    642731        assertEquals("clarin.eu:lrt:433", data.getId());
    643         List<String> resources = data.getResources();
     732        List<Resource> resources = data.getMetadataResources();
    644733        assertEquals(0, resources.size());
     734        List<Resource> dataResources = data.getDataResources();
     735        assertEquals(0, dataResources.size());
    645736        SolrInputDocument doc = data.getSolrDocument();
    646737        assertNotNull(doc);
     
    657748    }
    658749
    659     private FacetMapping getOlacFacetMap() {
    660         BeanFactory factory = new ClassPathXmlApplicationContext(new String[] { "importerConfig.xml" });
    661         FacetMapping facetMapping = (FacetMapping) factory.getBean("olacMapping");
    662         return facetMapping;
    663     }
    664 
    665     private FacetMapping getIMDIFacetMap() {
    666         BeanFactory factory = new ClassPathXmlApplicationContext(new String[] { "importerConfig.xml" });
    667         FacetMapping facetMapping = (FacetMapping) factory.getBean("imdiMapping");
    668         return facetMapping;
    669     }
    670 
    671     private FacetMapping getLrtFacetMap() {
    672         BeanFactory factory = new ClassPathXmlApplicationContext(new String[] { "importerConfig.xml" });
    673         FacetMapping facetMapping = (FacetMapping) factory.getBean("lrtMapping");
    674         return facetMapping;
    675     }
    676 
    677     private File createCmdiFile(String name, String content) throws IOException {
    678         File file = File.createTempFile(name, "cmdi", testDir);
    679         FileUtils.writeStringToFile(file, content, "UTF-8");
    680         return file;
    681     }
    682 
    683     @AfterClass
    684     public static void cleanup() {
    685         FileUtils.deleteQuietly(testDir);
    686     }
    687 
    688     @BeforeClass
    689     public static void setup() {
    690         final String baseTempPath = System.getProperty("java.io.tmpdir");
    691         testDir = new File(baseTempPath + File.separator + "testRegistry_" + System.currentTimeMillis());
    692         testDir.mkdir();
    693         testDir.deleteOnExit();
    694     }
    695 
    696750}
Note: See TracChangeset for help on using the changeset viewer.