use of org.gbif.ipt.struts2.SimpleTextProvider in project ipt by gbif.
the class ResourceManagerImplIT method data.
public static Stream<Arguments> data() throws IOException {
// Mock classes
AppConfig mockAppConfig = mock(AppConfig.class);
// mock returning resource URI in gbif-uat belong
when(mockAppConfig.getResourceUri(anyString())).thenReturn(UriBuilder.fromPath("http://www.gbif-uat.org:7001/ipt?r=ants").build());
when(mockAppConfig.getResourceVersionUri("ants", new BigDecimal("1.1"))).thenReturn(UriBuilder.fromPath("http://www.gbif-uat.org:7001/ipt?r=ants&v=1.1").build());
when(mockAppConfig.getMaxThreads()).thenReturn(3);
UserAccountManager mockUserAccountManager = mock(UserAccountManager.class);
UserEmailConverter mockEmailConverter = new UserEmailConverter(mockUserAccountManager);
ExtensionRowTypeConverter mockExtensionRowTypeConverter = mock(ExtensionRowTypeConverter.class);
ExtensionManager mockExtensionManager = mock(ExtensionManager.class);
JdbcInfoConverter mockJdbcConverter = mock(JdbcInfoConverter.class);
SourceManager mockSourceManager = mock(SourceManager.class);
RegistryManager mockRegistryManager = MockRegistryManager.buildMock();
GenerateDwcaFactory mockDwcaFactory = mock(GenerateDwcaFactory.class);
PasswordEncrypter mockPasswordEncrypter = mock(PasswordEncrypter.class);
Eml2Rtf mockEml2Rtf = mock(Eml2Rtf.class);
VocabulariesManager mockVocabulariesManager = mock(VocabulariesManager.class);
SimpleTextProvider mockSimpleTextProvider = mock(SimpleTextProvider.class);
ConceptTermConverter mockConceptTermConverter = mock(ConceptTermConverter.class);
// persist eml file for version 1.0 (contents written later)
TMP_EML_FILE = File.createTempFile("eml-1.0", ".xml");
when(MOCK_DATA_DIR.resourceEmlFile("ants", new BigDecimal("1.1"))).thenReturn(TMP_EML_FILE);
// DataCite parameters..
RegistrationManager mockRegistrationManagerDataCite = mock(RegistrationManager.class);
Properties p = PropertiesUtil.loadProperties("datacite.properties");
ClientConfiguration cfg = ClientConfiguration.builder().withBaseApiUrl(p.getProperty("baseApiUrl")).withTimeOut(Long.valueOf(p.getProperty("timeOut"))).withFileCacheMaxSizeMb(Long.valueOf(p.getProperty("fileCacheMaxSizeMb"))).withUser(p.getProperty("user")).withPassword(p.getProperty("password")).build();
// LOG.info("DataCite password (read from Maven property datacite.password)= " + dcCfg.getPassword());
Organisation oDataCite = new Organisation();
oDataCite.setAgencyAccountPrimary(true);
oDataCite.setName("GBIF");
oDataCite.setDoiPrefix(Constants.TEST_DOI_PREFIX);
oDataCite.setCanHost(true);
oDataCite.setAgencyAccountUsername(cfg.getUser());
oDataCite.setAgencyAccountPassword(cfg.getPassword());
oDataCite.setDoiRegistrationAgency(DOIRegistrationAgency.DATACITE);
// mock returning primary DOI agency account
when(mockRegistrationManagerDataCite.findPrimaryDoiAgencyAccount()).thenReturn(oDataCite);
// mock returning DataCite service
DoiService dataCiteService = new RestJsonApiDataCiteService(cfg.getBaseApiUrl(), cfg.getUser(), cfg.getPassword());
when(mockRegistrationManagerDataCite.getDoiService()).thenReturn(dataCiteService);
// mock ResourceManagerImpl for DataCite
ResourceManagerImpl managerDataCite = new ResourceManagerImpl(mockAppConfig, MOCK_DATA_DIR, mockEmailConverter, new OrganisationKeyConverter(mockRegistrationManagerDataCite), mockExtensionRowTypeConverter, mockJdbcConverter, mockSourceManager, mockExtensionManager, mockRegistryManager, mockConceptTermConverter, mockDwcaFactory, mockPasswordEncrypter, mockEml2Rtf, mockVocabulariesManager, mockSimpleTextProvider, mockRegistrationManagerDataCite);
return Stream.of(Arguments.of(managerDataCite, DOIRegistrationAgency.DATACITE, DOIUtils.mintDOI(DOIRegistrationAgency.DATACITE, Constants.TEST_DOI_PREFIX), mockRegistrationManagerDataCite));
}
use of org.gbif.ipt.struts2.SimpleTextProvider in project ipt by gbif.
the class GenerateDwcaEventTest method getResource.
/**
* Generates a test sampling event resource having an event core with occurrence extension.
*/
private Resource getResource(@NotNull File resourceXML, @NotNull File eventSourceFile, @NotNull File occurrenceSourceFile) throws IOException, SAXException, ParserConfigurationException, AlreadyExistingException, ImportException, InvalidFilenameException {
UserAccountManager mockUserAccountManager = mock(UserAccountManager.class);
UserEmailConverter mockEmailConverter = new UserEmailConverter(mockUserAccountManager);
RegistrationManager mockRegistrationManager = mock(RegistrationManager.class);
OrganisationKeyConverter mockOrganisationKeyConverter = new OrganisationKeyConverter(mockRegistrationManager);
RegistryManager mockRegistryManager = MockRegistryManager.buildMock();
GenerateDwcaFactory mockDwcaFactory = mock(GenerateDwcaFactory.class);
Eml2Rtf mockEml2Rtf = mock(Eml2Rtf.class);
VocabulariesManager mockVocabulariesManager = mock(VocabulariesManager.class);
SimpleTextProvider mockSimpleTextProvider = mock(SimpleTextProvider.class);
mockHandler = mock(ResourceManagerImpl.class);
resourceDir = FileUtils.createTempDir();
BaseAction baseAction = new BaseAction(mockSimpleTextProvider, mockAppConfig, mockRegistrationManager);
// construct ExtensionFactory using injected parameters
Injector injector = Guice.createInjector(new ServletModule(), new Struts2GuicePluginModule(), new IPTModule());
HttpClient httpClient = injector.getInstance(HttpClient.class);
ThesaurusHandlingRule thesaurusRule = new ThesaurusHandlingRule(mock(VocabulariesManagerImpl.class));
SAXParserFactory saxf = injector.getInstance(SAXParserFactory.class);
ExtensionFactory extensionFactory = new ExtensionFactory(thesaurusRule, saxf, httpClient);
JdbcSupport support = injector.getInstance(JdbcSupport.class);
PasswordEncrypter passwordEncrypter = injector.getInstance(PasswordEncrypter.class);
JdbcInfoConverter jdbcConverter = new JdbcInfoConverter(support);
ExtensionManager extensionManager = mock(ExtensionManager.class);
// construct event core Extension
InputStream eventCoreIs = GenerateDwcaTest.class.getResourceAsStream("/extensions/dwc_event_2015-04-24.xml");
Extension eventCore = extensionFactory.build(eventCoreIs);
// construct occurrence core Extension
InputStream occurrenceCoreIs = GenerateDwcaTest.class.getResourceAsStream("/extensions/dwc_occurrence_2015-04-24.xml");
Extension occurrenceCore = extensionFactory.build(occurrenceCoreIs);
// mock ExtensionManager returning occurrence core Extension
when(extensionManager.get("http://rs.tdwg.org/dwc/terms/Occurrence")).thenReturn(occurrenceCore);
when(extensionManager.get("http://rs.tdwg.org/dwc/terms/Event")).thenReturn(eventCore);
ExtensionRowTypeConverter extensionRowTypeConverter = new ExtensionRowTypeConverter(extensionManager);
ConceptTermConverter conceptTermConverter = new ConceptTermConverter(extensionRowTypeConverter);
// mock finding resource.xml file
when(mockDataDir.resourceFile(anyString(), anyString())).thenReturn(resourceXML);
// retrieve sample zipped resource folder
File zippedResourceFolder = FileUtils.getClasspathFile("resources/event/event.zip");
// retrieve sample eml.xml file
File emlXML = FileUtils.getClasspathFile("resources/event/eml.xml");
// mock finding eml.xml file
when(mockDataDir.resourceEmlFile(anyString())).thenReturn(emlXML);
// mock finding dwca.zip file that does not exist
when(mockDataDir.resourceDwcaFile(anyString())).thenReturn(new File("dwca.zip"));
// create SourceManagerImpl
mockSourceManager = new SourceManagerImpl(mock(AppConfig.class), mockDataDir);
// create temp directory
File tmpDataDir = FileUtils.createTempDir();
when(mockDataDir.tmpDir()).thenReturn(tmpDataDir);
// publication log file
File publicationLogFile = new File(resourceDir, DataDir.PUBLICATION_LOG_FILENAME);
when(mockDataDir.resourcePublicationLogFile(RESOURCE_SHORTNAME)).thenReturn(publicationLogFile);
// create ResourceManagerImpl
ResourceManagerImpl resourceManager = new ResourceManagerImpl(mockAppConfig, mockDataDir, mockEmailConverter, mockOrganisationKeyConverter, extensionRowTypeConverter, jdbcConverter, mockSourceManager, extensionManager, mockRegistryManager, conceptTermConverter, mockDwcaFactory, passwordEncrypter, mockEml2Rtf, mockVocabulariesManager, mockSimpleTextProvider, mockRegistrationManager);
// create user
User creator = new User();
creator.setFirstname("Leonardo");
creator.setLastname("Pisano");
creator.setEmail("fi@liberabaci.com");
creator.setLastLoginToNow();
creator.setRole(User.Role.Manager);
creator.setPassword("011235813");
// create a new resource.
resource = resourceManager.create(RESOURCE_SHORTNAME, Resource.CoreRowType.SAMPLINGEVENT.toString(), zippedResourceFolder, creator, baseAction);
// copy event source file to tmp folder
File copiedEvent = new File(resourceDir, "event.txt");
// mock file to which event source file gets copied to
when(mockDataDir.sourceFile(any(Resource.class), any(FileSource.class))).thenReturn(copiedEvent);
// mock log file
when(mockDataDir.sourceLogFile(anyString(), anyString())).thenReturn(new File(resourceDir, "log.txt"));
// add event fileSource to test Resource
FileSource eventFileSource = mockSourceManager.add(resource, eventSourceFile, "event.txt");
resource.getMappings().get(0).setSource(eventFileSource);
// copy occurrence source file to tmp folder
File copiedOccurrence = new File(resourceDir, "occurrence.txt");
// mock file to which occurrence source file gets copied to
when(mockDataDir.sourceFile(any(Resource.class), any(FileSource.class))).thenReturn(copiedOccurrence);
// add occurrence fileSource to test Resource
FileSource occurrenceFileSource = mockSourceManager.add(resource, occurrenceSourceFile, "occurrence.txt");
resource.getMappings().get(1).setSource(occurrenceFileSource);
// mock creation of zipped dwca in temp directory - this later becomes the actual archive generated
when(mockDataDir.tmpFile(anyString(), anyString())).thenReturn(new File(tmpDataDir, "dwca.zip"));
// mock creation of versioned zipped dwca in resource directory
when(mockDataDir.resourceDwcaFile(anyString(), any(BigDecimal.class))).thenReturn(new File(resourceDir, VERSIONED_ARCHIVE_FILENAME));
return resource;
}
use of org.gbif.ipt.struts2.SimpleTextProvider in project ipt by gbif.
the class EmlValidatorTest method before.
@BeforeEach
public void before() throws IOException, SAXException, ParserConfigurationException {
AppConfig mockCfg = mock(AppConfig.class);
SimpleTextProvider mockTextProvider = mock(SimpleTextProvider.class);
RegistrationManager mockRegistrationManager = mock(RegistrationManager.class);
// instance of EmlValidator using mock AppConfig, RegistrationManager, and SimpleTextProvider
validator = new EmlValidator(mockCfg, mockRegistrationManager, mockTextProvider);
// instance of BaseAction
action = new BaseAction(mockTextProvider, mockCfg, mockRegistrationManager);
// load sample eml, and set on resource
resource = new Resource();
organisation = new Organisation();
organisation.setName("NHM");
UUID organisationKey = UUID.randomUUID();
organisation.setKey(organisationKey.toString());
// mock organisation lookup by key
when(mockRegistrationManager.get(any(UUID.class))).thenReturn(organisation);
resource.setOrganisation(organisation);
resource.setCoreType(Resource.CoreRowType.CHECKLIST.toString());
resource.setUpdateFrequency(MaintenanceUpdateFrequency.ANNUALLY.toString());
eml = EmlFactory.build(FileUtils.classpathStream("data/eml.xml"));
resource.setEml(eml);
// create incomplete Agent (no last name, org name, or position)
badAgent = new Agent();
badAgent.setFirstName("John");
}
use of org.gbif.ipt.struts2.SimpleTextProvider in project ipt by gbif.
the class RegistryManagerImplIT method setup.
@BeforeEach
public void setup() throws SAXException, ParserConfigurationException {
ConfigWarnings mockConfigWarnings = mock(ConfigWarnings.class);
SimpleTextProvider mockSimpleTextProvider = mock(SimpleTextProvider.class);
RegistrationManager mockRegistrationManager = mock(RegistrationManager.class);
resourceManager = mock(ResourceManager.class);
// manager that issues real http requests
manager = new RegistryManagerImpl(cfg, dataDir, buildHttpClient(), buildSaxFactory(), mockConfigWarnings, mockSimpleTextProvider, mockRegistrationManager, resourceManager);
}
use of org.gbif.ipt.struts2.SimpleTextProvider in project ipt by gbif.
the class GenerateDCATTest method getResource.
/**
* Generates a test Resource from zipped resource folder, and populates resource with license, contacts, etc.
*
* @param resourceXML resource (XML) configuration file defining column mapping of sourceFile
*
* @return test Resource
*/
private Resource getResource(@NotNull File resourceXML) throws IOException, SAXException, ParserConfigurationException, AlreadyExistingException, ImportException, InvalidFilenameException {
UserAccountManager mockUserAccountManager = mock(UserAccountManager.class);
UserEmailConverter mockEmailConverter = new UserEmailConverter(mockUserAccountManager);
OrganisationKeyConverter mockOrganisationKeyConverter = new OrganisationKeyConverter(mockRegistrationManager);
RegistryManager mockRegistryManager = MockRegistryManager.buildMock();
GenerateDwcaFactory mockDwcaFactory = mock(GenerateDwcaFactory.class);
Eml2Rtf mockEml2Rtf = mock(Eml2Rtf.class);
VocabulariesManager mockVocabulariesManager = mock(VocabulariesManager.class);
SimpleTextProvider mockSimpleTextProvider = mock(SimpleTextProvider.class);
BaseAction baseAction = new BaseAction(mockSimpleTextProvider, mockAppConfig, mockRegistrationManager);
// construct ExtensionFactory using injected parameters
Injector injector = Guice.createInjector(new ServletModule(), new Struts2GuicePluginModule(), new IPTModule());
HttpClient httpClient = injector.getInstance(HttpClient.class);
ThesaurusHandlingRule thesaurusRule = new ThesaurusHandlingRule(mock(VocabulariesManagerImpl.class));
SAXParserFactory saxf = injector.getInstance(SAXParserFactory.class);
ExtensionFactory extensionFactory = new ExtensionFactory(thesaurusRule, saxf, httpClient);
JdbcSupport support = injector.getInstance(JdbcSupport.class);
PasswordEncrypter passwordEncrypter = injector.getInstance(PasswordEncrypter.class);
JdbcInfoConverter jdbcConverter = new JdbcInfoConverter(support);
// construct occurrence core Extension
InputStream occurrenceCoreIs = GenerateDwcaTest.class.getResourceAsStream("/extensions/dwc_occurrence_2015-04-24.xml");
Extension occurrenceCore = extensionFactory.build(occurrenceCoreIs);
ExtensionManager extensionManager = mock(ExtensionManager.class);
// mock ExtensionManager returning occurrence core Extension
when(extensionManager.get("http://rs.tdwg.org/dwc/terms/Occurrence")).thenReturn(occurrenceCore);
ExtensionRowTypeConverter extensionRowTypeConverter = new ExtensionRowTypeConverter(extensionManager);
ConceptTermConverter conceptTermConverter = new ConceptTermConverter(extensionRowTypeConverter);
// mock finding resource.xml file
when(mockDataDir.resourceFile(anyString(), anyString())).thenReturn(resourceXML);
// retrieve sample zipped resource folder
File zippedResourceFolder = FileUtils.getClasspathFile("resources/res1.zip");
// retrieve sample eml.xml file
File emlXML = FileUtils.getClasspathFile("resources/res1/eml.xml");
// mock finding eml.xml file
when(mockDataDir.resourceEmlFile(anyString())).thenReturn(emlXML);
// mock finding dwca.zip file that does not exist
when(mockDataDir.resourceDwcaFile(anyString())).thenReturn(new File("dwca.zip"));
// create SourceManagerImpl
SourceManager mockSourceManager = new SourceManagerImpl(mock(AppConfig.class), mockDataDir);
// create temp directory
File tmpDataDir = FileUtils.createTempDir();
when(mockDataDir.tmpDir()).thenReturn(tmpDataDir);
// create ResourceManagerImpl
ResourceManagerImpl resourceManager = new ResourceManagerImpl(mockAppConfig, mockDataDir, mockEmailConverter, mockOrganisationKeyConverter, extensionRowTypeConverter, jdbcConverter, mockSourceManager, extensionManager, mockRegistryManager, conceptTermConverter, mockDwcaFactory, passwordEncrypter, mockEml2Rtf, mockVocabulariesManager, mockSimpleTextProvider, mockRegistrationManager);
// creator
User creator = new User();
creator.setEmail("jcuadra@gbif.org");
creator.setLastname("Cuadra");
// create a new resource.
Resource resource = resourceManager.create(RESOURCE_SHORTNAME, null, zippedResourceFolder, creator, baseAction);
// update resource title and description, to have double quotation marks which need to be escaped
resource.setTitle("TEST \"RESOURCE\"");
resource.getEml().getDescription().set(0, "Test \"description\"");
// update keyword sets: should be three, with "Occurrence" and "Observation" repeating more than once which breaks the feed
resource.getEml().getKeywords().clear();
KeywordSet keywordSet1 = new KeywordSet();
keywordSet1.add("Phytosociology");
keywordSet1.add("Occurrence");
keywordSet1.add("Observation");
keywordSet1.setKeywordThesaurus("n/a");
KeywordSet keywordSet2 = new KeywordSet();
keywordSet2.add("Occurrence");
keywordSet2.setKeywordThesaurus("http://rs.gbif.org/vocabulary/gbif/dataset_type.xml");
KeywordSet keywordSet3 = new KeywordSet();
keywordSet3.add("Observation");
keywordSet3.setKeywordThesaurus("http://rs.gbif.org/vocabulary/gbif/dataset_subtype.xml");
resource.getEml().addKeywordSet(keywordSet1);
resource.getEml().addKeywordSet(keywordSet2);
resource.getEml().addKeywordSet(keywordSet3);
// CCO
resource.getEml().setIntellectualRights("This work is licensed under <a href=\"http://creativecommons.org/publicdomain/zero/1.0/legalcode\">Creative Commons CCZero (CC0) 1.0 License</a>.");
assertEquals("http://creativecommons.org/publicdomain/zero/1.0/legalcode", resource.getEml().parseLicenseUrl());
// set creator, contact, and metadata provider
Agent agent = new Agent();
agent.setFirstName("Eric");
agent.setLastName("Stienen");
agent.setEmail("eric.stienen@inbo.be");
resource.getEml().addCreator(agent);
resource.getEml().addContact(agent);
resource.getEml().addMetadataProvider(agent);
return resource;
}
Aggregations