Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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;
}