void testObj::test<8>(void) { // making timestamp for all calls prevents timing issues. const Timestamp now=Timestamp(123456); Persistency::MetaAlertPtrNN maPtrNode( new Persistency::MetaAlert( Persistency::MetaAlert::Name("meta alert node"), 0.1, 0.2, makeNewReferenceURL().shared_ptr(), now, 1410u ) ); Persistency::IO::Postgres::MetaAlert malertNode(maPtrNode, t_, dbh_); Persistency::Alert::Analyzers sa( AnalyzerPtrNN( new Analyzer(42u, "analyzer name", NULL, NULL, NULL) ) ); Persistency::AlertPtrNN alertPtr(new Persistency::Alert("abc", sa, NULL, now, Severity(SeverityLevel::INFO), Certainty(0.42), "some description", Persistency::Alert::Hosts(), Persistency::Alert::Hosts()) ); Persistency::IO::Postgres::Alert alert(alertPtr, t_, dbh_); malertNode.save(); alert.save(); malertNode.associateWithAlert( alertPtr ); const DataBaseID malertNodeID=dbh_->getIDCache()->get( maPtrNode ); const DataBaseID alertID =dbh_->getIDCache()->get( alertPtr ); stringstream ss; ss << "SELECT * FROM alert_to_meta_alert_map WHERE id_alert = " << alertID << ";"; const result r = t_.getAPI<TransactionAPI>().exec(ss); ensure_equals("invalid size",r.size(), 1u); ensure_equals("invalid Alert ID", ReaderHelper<DataBaseID>::readAsNotNull(r[0]["id_meta_alert"]), malertNodeID); ensure_equals("invalid MetaAlert ID", ReaderHelper<DataBaseID>::readAsNotNull(r[0]["id_alert"]), alertID); t_.commit(); }
terrama2::services::alert::core::AlertPtr newAlert() { auto alert = new terrama2::services::alert::core::Alert(); terrama2::services::alert::core::AlertPtr alertPtr(alert); alert->id = 1; alert->projectId = 1; alert->active = true; alert->name = "Example alert"; terrama2::core::DataSeriesRisk risk; risk.id = 1; risk.dataSeriesId = 1; risk.name = "Wind velocity alert"; risk.attribute = "cont"; terrama2::core::RiskLevel level1; level1.level = 1; level1.hasUpperBound = true; level1.upperBound = 20; level1.name = "low"; risk.riskLevels.push_back(level1); terrama2::core::RiskLevel level2; level2.level = 2; level2.hasLowerBound = true; level2.lowerBound = 20; level2.hasUpperBound = true; level2.upperBound = 50; level2.name = "medium"; risk.riskLevels.push_back(level2); terrama2::core::RiskLevel level3; level3.level = 3; level3.hasLowerBound = true; level3.lowerBound = 50; level3.name = "high"; risk.riskLevels.push_back(level3); alert->risk = risk; terrama2::services::alert::core::AdditionalData additionalData; additionalData.id = 2; additionalData.identifier = "codigo_ibg"; additionalData.attributes.push_back("sigla"); additionalData.attributes.push_back("regiao_id"); alert->additionalDataVector.push_back(additionalData); std::unordered_map<std::string, std::string> reportMetadata; reportMetadata[terrama2::services::alert::core::ReportTags::TYPE] = "TXT"; reportMetadata[terrama2::services::alert::core::ReportTags::TITLE] = "NUMERIC RISK EXAMPLE REPORT"; reportMetadata[terrama2::services::alert::core::ReportTags::SUBTITLE] = "NumericRisk.cpp"; reportMetadata[terrama2::services::alert::core::ReportTags::AUTHOR] = "Jano Simas"; reportMetadata[terrama2::services::alert::core::ReportTags::CONTACT] = "*****@*****.**"; reportMetadata[terrama2::services::alert::core::ReportTags::COPYRIGHT] = "copyright information..."; reportMetadata[terrama2::services::alert::core::ReportTags::DESCRIPTION] = "Example generated report..."; reportMetadata[terrama2::services::alert::core::ReportTags::DESTINATION_FOLDER] = TERRAMA2_DATA_DIR; reportMetadata[terrama2::services::alert::core::ReportTags::FILE_NAME] = "report.txt"; alert->reportMetadata = reportMetadata; return alertPtr; }