/** Test of selectByStatus method, of class PublicationDAO. */
  @Test
  public void testSelectByStatus_3args_2() throws Exception {
    IDatabaseConnection connection = getConnection();
    try {
      Connection con = connection.getConnection();
      List<String> componentIds = new ArrayList<String>();
      componentIds.add("kmelia200");
      componentIds.add("kmelia201");
      String status = "Valid";
      Collection<PublicationDetail> result =
          PublicationDAO.selectByStatus(con, componentIds, status);
      assertEquals(result.size(), 2);

      status = "Draft";
      result = PublicationDAO.selectByStatus(con, componentIds, status);
      assertEquals(result.size(), 0);

      status = "Valid";
      componentIds.remove("kmelia200");
      result = PublicationDAO.selectByStatus(con, componentIds, status);
      assertEquals(result.size(), 0);
    } finally {
      connection.close();
    }
  }
 protected static void closeDBUnit() {
   try {
     connection.close();
   } catch (SQLException e) {
     e.printStackTrace();
   }
 }
  @BeforeClass
  public static void setUpBeforeClass() throws Exception {
    // initialize Log4j
    Properties props = new Properties();
    props.load(
        (new ClassPathResource("confs/log4j-exercise.properties", CompanyService.class))
            .getInputStream());
    org.apache.log4j.PropertyConfigurator.configure(props);

    // load springframework context
    applContext =
        new ClassPathXmlApplicationContext(
            "confs/spring-exercise-hibernate.xml", CompanyService.class);

    // create DbUnit core components
    IDatabaseConnection conn =
        new DatabaseDataSourceConnection((DataSource) applContext.getBean("dataSource"));
    dataSet =
        new FlatXmlDataSet(
            (new ClassPathResource(
                    "thirdstage/exercise/spring/transaction/case2/test/dataset/company-building-factory-seed-01.xml"))
                .getFile());

    // clean target tables and load test data
    try {
      DatabaseOperation.CLEAN_INSERT.execute(conn, dataSet);
    } finally {
      conn.close();
    }
  }
  /** Test of selectByFatherIds method, of class PublicationDAO. */
  @Test
  public void testSelectByFatherIds() throws Exception {
    IDatabaseConnection connection = getConnection();
    try {
      Connection con = connection.getConnection();
      List<String> fatherIds = new ArrayList<String>();
      fatherIds.add("110");
      PublicationPK pubPK = new PublicationPK("useless", "kmelia200");
      String sorting = "P.pubName";
      List<String> status = new ArrayList<String>();
      status.add("Valid");
      boolean filterOnVisibilityPeriod = true;
      ArrayList<PublicationDetail> result =
          PublicationDAO.selectByFatherIds(
              con, fatherIds, pubPK, sorting, status, filterOnVisibilityPeriod);
      assertEquals(result.size(), 2);

      // Test on an empty node
      fatherIds.clear();
      fatherIds.add("999");

      result =
          PublicationDAO.selectByFatherIds(
              con, fatherIds, pubPK, sorting, status, filterOnVisibilityPeriod);
      assertEquals(result.size(), 0);
    } finally {
      connection.close();
    }
  }
 /** Test of selectByNameAndNodeId method, of class PublicationDAO. */
 @Test
 public void testSelectByNameAndNodeId() throws Exception {
   IDatabaseConnection connection = getConnection();
   try {
     Connection con = connection.getConnection();
     PublicationPK pubPK = new PublicationPK("100", "kmelia200");
     String name = "Publication 1";
     int nodeId = 110;
     PublicationDetail result = PublicationDAO.selectByNameAndNodeId(con, pubPK, name, nodeId);
     assertEquals(pubPK, result.getPK());
     assertEquals("Homer Simpson", result.getAuthor());
     assertEquals("2009/10/18", DateUtil.formatDate(result.getBeginDate()));
     assertEquals("00:00", result.getBeginHour());
     assertEquals("Contenu de la publication 1", result.getContent());
     assertEquals("2008/11/18", DateUtil.formatDate(result.getCreationDate()));
     assertEquals("100", result.getCreatorId());
     assertEquals("Première publication de test", result.getDescription());
     assertEquals("2020/12/18", DateUtil.formatDate(result.getEndDate()));
     assertEquals("23:59", result.getEndHour());
     assertEquals(1, result.getImportance());
     assertEquals("0", result.getInfoId());
     assertEquals("kmelia200", result.getInstanceId());
     assertEquals("test", result.getKeywords());
     assertEquals("Publication 1", result.getName());
     assertEquals("Valid", result.getStatus());
     assertEquals("300", result.getValidatorId());
     assertEquals("Publication 1", result.getTitle());
   } finally {
     connection.close();
   }
 }
예제 #6
0
 protected void assertExpTable() throws Exception {
   String table = expected.getTableMetaData().getTableName();
   actual = databaseConnection.createQueryTable(table, query);
   try {
     assertEquals(expected, actual);
   } finally {
     databaseConnection.close();
   }
 }
 /** Executa operações do DBUnit no dataset <code>dbUnitXmlPath</code>. */
 protected void execute(DatabaseOperation operation, String dbUnitXmlPath) {
   try {
     IDatabaseConnection dbconn = this.getDbUnitConnection();
     operation.execute(dbconn, this.getDataSetFrom(dbUnitXmlPath));
     dbconn.close();
   } catch (Exception e) {
     e.printStackTrace();
     throw new RuntimeException(e);
   }
 }
예제 #8
0
 @AfterClass(alwaysRun = true)
 protected void tearDown() {
   if (dbUnitConnection != null) {
     try {
       dbUnitConnection.close();
     } catch (SQLException e) {
       logger.catching(e);
     }
   }
 }
  /** Test of selectByFatherPK method, of class PublicationDAO. */
  @Test
  public void testSelectByFatherPK_Connection_NodePK() throws Exception {
    IDatabaseConnection connection = getConnection();
    try {
      Connection con = connection.getConnection();
      NodePK fatherPK = new NodePK("110", "kmelia200");
      Collection<PublicationDetail> result = PublicationDAO.selectByFatherPK(con, fatherPK);
      assertNotNull(result);
      assertEquals(2, result.size());
      Iterator<PublicationDetail> iter = result.iterator();
      PublicationDetail detail = iter.next();
      PublicationPK primaryKey = new PublicationPK("100", "kmelia200");
      assertEquals(primaryKey, detail.getPK());
      assertEquals("Homer Simpson", detail.getAuthor());
      assertEquals("2009/10/18", DateUtil.formatDate(detail.getBeginDate()));
      assertEquals("00:00", detail.getBeginHour());
      assertEquals("Contenu de la publication 1", detail.getContent());
      assertEquals("2008/11/18", DateUtil.formatDate(detail.getCreationDate()));
      assertEquals("100", detail.getCreatorId());
      assertEquals("Première publication de test", detail.getDescription());
      assertEquals("2020/12/18", DateUtil.formatDate(detail.getEndDate()));
      assertEquals("23:59", detail.getEndHour());
      assertEquals(1, detail.getImportance());
      assertEquals("0", detail.getInfoId());
      assertEquals("kmelia200", detail.getInstanceId());
      assertEquals("test", detail.getKeywords());
      assertEquals("Publication 1", detail.getName());
      assertEquals("Valid", detail.getStatus());
      assertEquals("300", detail.getValidatorId());
      assertEquals("Publication 1", detail.getTitle());

      detail = iter.next();
      primaryKey = new PublicationPK("101", "kmelia200");
      assertEquals(primaryKey, detail.getPK());
      assertEquals("Bart Simpson", detail.getAuthor());
      assertEquals("2009/10/18", DateUtil.formatDate(detail.getBeginDate()));
      assertEquals("01:10", detail.getBeginHour());
      assertEquals("Contenu de la publication 2", detail.getContent());
      assertEquals("2008/11/18", DateUtil.formatDate(detail.getCreationDate()));
      assertEquals("101", detail.getCreatorId());
      assertEquals("2ème publication de test", detail.getDescription());
      assertEquals("2020/12/18", DateUtil.formatDate(detail.getEndDate()));
      assertEquals("20:35", detail.getEndHour());
      assertEquals(5, detail.getImportance());
      assertEquals("0", detail.getInfoId());
      assertEquals("kmelia200", detail.getInstanceId());
      assertEquals("test", detail.getKeywords());
      assertEquals("Publication 2", detail.getName());
      assertEquals("Valid", detail.getStatus());
      assertEquals("300", detail.getValidatorId());
      assertEquals("Publication 2", detail.getTitle());
    } finally {
      connection.close();
    }
  }
예제 #10
0
 private void closeAllConnections() {
   for (; ; ) {
     IDatabaseConnection conn = connections.poll();
     if (conn == null) return;
     try {
       conn.close();
     } catch (Exception e) {
       e.printStackTrace();
     }
   }
 }
예제 #11
0
  protected void setUp() throws Exception {
    // NOTE: This will disable the SYS GLOBAL party creation and creation of all the reference
    // entities!!!
    initializeModelData = false;

    super.setUp();
    IDatabaseConnection dbUnitConn = null;
    dbUnitConn = getDbUnitConnection();
    DatabaseOperation.REFRESH.execute(dbUnitConn, getDataSet());
    dbUnitConn.getConnection().commit();
    dbUnitConn.close();
    dbUnitConn.getConnection().close();
  }
  /** {@inheritDoc} Uses the connection from the provided databaseTester. */
  public void verifyData() throws Exception {
    if (databaseTester == null) {
      throw new IllegalStateException("databaseTester is null; must configure or set it first");
    }

    IDatabaseConnection connection = databaseTester.getConnection();

    try {
      int count = tableDefs.length;
      LOG.info("verifyData: about to verify {} tables={}", new Integer(count), tableDefs);
      if (count == 0) {
        LOG.warn("verifyData: No tables to verify;" + " no VerifyTableDefinitions specified");
      }

      for (int i = 0; i < count; i++) {
        VerifyTableDefinition td = tableDefs[i];
        String[] excludeColumns = td.getColumnExclusionFilters();
        String[] includeColumns = td.getColumnInclusionFilters();
        String tableName = td.getTableName();

        LOG.info("verifyData: Verifying table '{}'", tableName);

        LOG.debug("verifyData: Loading its rows from expected dataset");
        ITable expectedTable = null;
        try {
          expectedTable = expectedDs.getTable(tableName);
        } catch (Exception e) {
          final String msg =
              "verifyData: Problem obtaining table '" + tableName + "' from expected dataset";
          LOG.error(msg, e);
          throw new DataSetException(msg, e);
        }

        LOG.debug("verifyData: Loading its rows from actual table");
        ITable actualTable = null;
        try {
          actualTable = connection.createTable(tableName);
        } catch (Exception e) {
          final String msg =
              "verifyData: Problem obtaining table '" + tableName + "' from actual dataset";
          LOG.error(msg, e);
          throw new DataSetException(msg, e);
        }

        verifyData(expectedTable, actualTable, excludeColumns, includeColumns);
      }
    } finally {
      LOG.debug("verifyData: Verification done, closing connection");
      connection.close();
    }
  }
 /** Test of changeInstanceId method, of class PublicationDAO. */
 @Test
 public void testChangeInstanceId() throws Exception {
   IDatabaseConnection connection = getConnection();
   try {
     Connection con = connection.getConnection();
     PublicationPK pk = new PublicationPK("100", "kmelia200");
     PublicationDetail detail = PublicationDAO.loadRow(con, pk);
     assertEquals(pk, detail.getPK());
     assertEquals("Homer Simpson", detail.getAuthor());
     assertEquals("2009/10/18", DateUtil.formatDate(detail.getBeginDate()));
     assertEquals("00:00", detail.getBeginHour());
     assertEquals("Contenu de la publication 1", detail.getContent());
     assertEquals("2008/11/18", DateUtil.formatDate(detail.getCreationDate()));
     assertEquals("100", detail.getCreatorId());
     assertEquals("Première publication de test", detail.getDescription());
     assertEquals("2020/12/18", DateUtil.formatDate(detail.getEndDate()));
     assertEquals("23:59", detail.getEndHour());
     assertEquals(1, detail.getImportance());
     assertEquals("0", detail.getInfoId());
     assertEquals("kmelia200", detail.getInstanceId());
     assertEquals("test", detail.getKeywords());
     assertEquals("Publication 1", detail.getName());
     assertEquals("Valid", detail.getStatus());
     assertEquals("300", detail.getValidatorId());
     assertEquals("Publication 1", detail.getTitle());
     String targetInstance = "kmelia" + RandomGenerator.getRandomInt(600);
     PublicationDAO.changeInstanceId(con, pk, targetInstance);
     pk = new PublicationPK("100", targetInstance);
     detail = PublicationDAO.loadRow(con, pk);
     assertEquals(pk, detail.getPK());
     assertEquals("Homer Simpson", detail.getAuthor());
     assertEquals("2009/10/18", DateUtil.formatDate(detail.getBeginDate()));
     assertEquals("00:00", detail.getBeginHour());
     assertEquals("Contenu de la publication 1", detail.getContent());
     assertEquals("2008/11/18", DateUtil.formatDate(detail.getCreationDate()));
     assertEquals("100", detail.getCreatorId());
     assertEquals("Première publication de test", detail.getDescription());
     assertEquals("2020/12/18", DateUtil.formatDate(detail.getEndDate()));
     assertEquals("23:59", detail.getEndHour());
     assertEquals(1, detail.getImportance());
     assertEquals("0", detail.getInfoId());
     assertEquals(targetInstance, detail.getInstanceId());
     assertEquals("test", detail.getKeywords());
     assertEquals("Publication 1", detail.getName());
     assertEquals("Valid", detail.getStatus());
     assertEquals("300", detail.getValidatorId());
     assertEquals("Publication 1", detail.getTitle());
   } finally {
     connection.close();
   }
 }
  /** Test of selectByStatus method, of class PublicationDAO. */
  @Test
  public void testSelectByStatus_3args_1() throws Exception {
    IDatabaseConnection connection = getConnection();
    try {
      Connection con = connection.getConnection();
      PublicationPK pubPK = new PublicationPK("useless", "kmelia200");
      String status = "Valid";
      Collection<PublicationDetail> result = PublicationDAO.selectByStatus(con, pubPK, status);
      assertEquals(result.size(), 2);

      status = "Draft";
      result = PublicationDAO.selectByStatus(con, pubPK, status);
      assertEquals(result.size(), 0);
    } finally {
      connection.close();
    }
  }
  /**
   * Verify that we can start the server as a daemon.
   *
   * @throws Exception If there was an error.
   */
  @Test
  public void testRunDaemon() throws Exception {
    ReflectionUtils.setVariableValueInObject(mojo, "daemon", Boolean.TRUE);
    try {
      mojo.execute();
      Thread.sleep(5000L);
      final Connection jdbcConnection = DriverManager.getConnection(getConnectionString());
      final IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
      IDataSet databaseDataSet = connection.createDataSet();
      assertNotNull(databaseDataSet.getTable(getTableName()));

      connection.close();
      jdbcConnection.close();
    } finally {
      signalStop();
    }
  }
예제 #16
0
 private void executeOperations(List<DataSetOperation> list) {
   IDatabaseConnection con = null;
   try {
     con = getConnection();
     disableReferentialIntegrity(con);
     for (DataSetOperation op : list) {
       log.debug("executing DBUnit operation: " + op);
       op.execute(con);
     }
     enableReferentialIntegrity(con);
   } finally {
     if (con != null) {
       try {
         con.close();
       } catch (Exception ex) {
         ex.printStackTrace(System.err);
       }
     }
   }
 }
  /**
   * Verify that we can start the server.
   *
   * @throws Exception If there was an error.
   */
  @Test
  public void testRun() throws Exception {
    ReflectionUtils.setVariableValueInObject(mojo, "daemon", Boolean.FALSE);

    final Thread mojoThread =
        new Thread(
            new Runnable() {
              public void run() {
                try {
                  mojo.execute();
                } catch (final Exception e) {
                }
              }
            });
    mojoThread.start();
    try {
      Thread.sleep(5000);

      final Connection jdbcConnection = DriverManager.getConnection(getConnectionString());
      final IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
      IDataSet databaseDataSet = connection.createDataSet();
      assertNotNull(databaseDataSet.getTable(getTableName()));

      connection.close();
      jdbcConnection.close();
    } finally {
      final Timer timer = new Timer();
      timer.schedule(
          new TimerTask() {
            @Override
            public void run() {
              signalStop();
            }
          },
          5000L);
      mojoThread.join(15000L);
    }
  }
예제 #18
0
  @Test
  public void testGetObject() throws Exception {
    setUpDatabase(getTestDatabase());

    IDatabaseConnection c = getConnection();
    ITable names = c.createQueryTable("EXPECTED_NAMES", "SELECT * FROM properties");
    Assert.assertEquals(4, names.getRowCount());

    QueryExecutor<RetrieveField> qe = new QueryExecutor<RetrieveField>();
    qe.setConnection(c.getConnection());

    ResultSet rs = qe.process((RetrieveField) query);

    int count = 0;
    while (rs.next()) {

      count++;
    }
    Assert.assertTrue(count > 0);
    rs.close();
    qe.close();
    c.close();
  }
 /** Test of storeRow method, of class PublicationDAO. */
 @Test
 public void testStoreRow() throws Exception {
   IDatabaseConnection connection = getConnection();
   try {
     Connection con = connection.getConnection();
     PublicationPK pk = new PublicationPK("100", "kmelia200");
     PublicationDetail detail = PublicationDAO.loadRow(con, pk);
     assertEquals(pk, detail.getPK());
     assertEquals("Homer Simpson", detail.getAuthor());
     assertEquals("2009/10/18", DateUtil.formatDate(detail.getBeginDate()));
     assertEquals("00:00", detail.getBeginHour());
     assertEquals("Contenu de la publication 1", detail.getContent());
     assertEquals("2008/11/18", DateUtil.formatDate(detail.getCreationDate()));
     assertEquals("100", detail.getCreatorId());
     assertEquals("Première publication de test", detail.getDescription());
     assertEquals("2020/12/18", DateUtil.formatDate(detail.getEndDate()));
     assertEquals("23:59", detail.getEndHour());
     assertEquals(1, detail.getImportance());
     assertEquals("0", detail.getInfoId());
     assertEquals("kmelia200", detail.getInstanceId());
     assertEquals("test", detail.getKeywords());
     assertEquals("Publication 1", detail.getName());
     assertEquals("Valid", detail.getStatus());
     assertEquals("300", detail.getValidatorId());
     assertEquals("Publication 1", detail.getTitle());
     Calendar now = Calendar.getInstance();
     now.set(Calendar.SECOND, 0);
     now.set(Calendar.MILLISECOND, 0);
     now.set(Calendar.MINUTE, 0);
     now.set(Calendar.HOUR_OF_DAY, 0);
     Calendar beginDate = RandomGenerator.getCalendarAfter(now);
     Calendar endDate = RandomGenerator.getCalendarAfter(beginDate);
     String name = RandomGenerator.getRandomString();
     String description = RandomGenerator.getRandomString();
     String creatorId = "" + RandomGenerator.getRandomInt();
     int importance = RandomGenerator.getRandomInt(5);
     String version = RandomGenerator.getRandomString();
     String contenu = RandomGenerator.getRandomString();
     StringBuilder buffer = new StringBuilder();
     int nbKeywords = RandomGenerator.getRandomInt(5) + 2;
     for (int i = 0; i < nbKeywords; i++) {
       buffer.append(RandomGenerator.getRandomString());
       if (i < (nbKeywords - 1)) {
         buffer.append(' ');
       }
     }
     String keywords = buffer.toString();
     detail.setName(name);
     detail.setDescription(description);
     detail.setCreationDate(now.getTime());
     detail.setBeginDateAndHour(beginDate.getTime());
     detail.setEndDateAndHour(endDate.getTime());
     detail.setCreatorId(creatorId);
     detail.setImportance(importance);
     detail.setVersion(version);
     detail.setKeywords(keywords);
     detail.setContent(contenu);
     detail.setBeginHour(DateUtil.formatTime(beginDate));
     detail.setEndHour(DateUtil.formatTime(endDate));
     PublicationDAO.storeRow(con, detail);
     PublicationDetail result = PublicationDAO.loadRow(con, pk);
     detail.setUpdateDate(now.getTime());
     detail.setUpdaterId(creatorId);
     detail.setInfoId("0");
     assertEquals(detail.getPK(), result.getPK());
     assertEquals(detail.getAuthor(), result.getAuthor());
     assertEquals(detail.getBeginDate(), result.getBeginDate());
     assertEquals(detail.getBeginHour(), result.getBeginHour());
     assertEquals(detail.getContent(), result.getContent());
     assertEquals(detail.getCreationDate(), result.getCreationDate());
     assertEquals(detail.getUpdateDate(), result.getCreationDate());
     assertEquals(detail.getCreatorId(), result.getCreatorId());
     assertEquals(detail.getDescription(), result.getDescription());
     assertEquals(detail.getEndDate(), result.getEndDate());
     assertEquals(detail.getEndHour(), result.getEndHour());
     assertEquals(detail.getImportance(), result.getImportance());
     assertEquals(detail.getInfoId(), result.getInfoId());
     assertEquals(detail.getInstanceId(), result.getInstanceId());
     assertEquals(detail.getKeywords(), result.getKeywords());
     assertEquals(detail.getName(), result.getName());
     assertEquals(detail.getStatus(), result.getStatus());
     assertEquals(detail.getTitle(), result.getTitle());
   } finally {
     connection.close();
   }
 }
예제 #20
0
  public static void reload() throws Exception {
    if (dbReloaded) {
      return;
    }

    Connection jdbcConn = null;
    IDatabaseConnection dbunitConn = null;
    try {
      jdbcConn = DriverManager.getConnection(URL, USERNAME, PASSWORD);

      boolean caseSensitiveTableNames = false;
      if (URL.contains("postgres")) {
        dbunitConn = new DatabaseConnection(jdbcConn, SCHEMA);
        dbunitConn
            .getConfig()
            .setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new PostgresqlDataTypeFactory());
        caseSensitiveTableNames = true;
      } else if (URL.contains("mysql")) {
        dbunitConn = new MySqlConnection(jdbcConn, null);
        if (System.getProperty("os.name").contains("Linux")) {
          caseSensitiveTableNames = true;
        }
      }
      // else if (URL.contains("oracle")) {
      //	dbunitConn = new OracleConnection(jdbcConn, SCHEMA);
      // }
      // else if (URL.contains("sqlserver")) {
      //	dbunitConn = new MsSqlConnection(jdbcConn, SCHEMA);
      // }
      // else if (URL.contains("db2")) {
      //	dbunitConn = new Db2Connection(jdbcConn, SCHEMA);
      //	if (System.getProperty("os.name").contains("Linux")) {
      //		caseSensitiveTableNames = true;
      //	}
      // }
      else {
        throw new IllegalStateException("Die Datenbank-URL " + URL + " wird nicht unterstuetzt");
      }

      final ClassLoader cl = Thread.currentThread().getContextClassLoader();
      final FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
      flatXmlDataSetBuilder.setCaseSensitiveTableNames(caseSensitiveTableNames);
      FlatXmlDataSet xmlDataset = flatXmlDataSetBuilder.build(cl.getResource(XML_FLAT_DATASET));

      DatabaseOperation dbOp = CLEAN_INSERT;
      // if (URL != null && URL.contains("sqlserver")) {
      //	// Fuer SQL Server ist ein spezieller INSERT-Modus notwendig,
      //	// damit IDENTITY-Spalten eingefuegt werden koennen
      //	dbOp = InsertIdentityOperation.CLEAN_INSERT;
      // }

      dbOp.execute(dbunitConn, xmlDataset);
    } finally {
      if (dbunitConn != null) dbunitConn.close();

      if (jdbcConn != null) jdbcConn.close();
    }

    dbReloaded = true;

    System.out.println("Die Datenbank " + URL + " wurde neu geladen");
  }
 /** Test of insertRow method, of class PublicationDAO. */
 @Test
 public void testInsertRow() throws Exception {
   IDatabaseConnection connection = getConnection();
   try {
     Connection con = connection.getConnection();
     PublicationPK pk = new PublicationPK("500", "kmelia36");
     Calendar now = Calendar.getInstance();
     now.set(Calendar.SECOND, 0);
     now.set(Calendar.MILLISECOND, 0);
     now.set(Calendar.MINUTE, 0);
     now.set(Calendar.HOUR_OF_DAY, 0);
     Calendar beginDate = RandomGenerator.getCalendarAfter(now);
     Calendar endDate = RandomGenerator.getCalendarAfter(beginDate);
     String name = RandomGenerator.getRandomString();
     String description = RandomGenerator.getRandomString();
     String creatorId = "" + RandomGenerator.getRandomInt();
     int importance = RandomGenerator.getRandomInt(5);
     String version = RandomGenerator.getRandomString();
     String contenu = RandomGenerator.getRandomString();
     StringBuilder buffer = new StringBuilder();
     int nbKeywords = RandomGenerator.getRandomInt(5) + 2;
     for (int i = 0; i < nbKeywords; i++) {
       buffer.append(RandomGenerator.getRandomString());
       if (i < (nbKeywords - 1)) {
         buffer.append(' ');
       }
     }
     String keywords = buffer.toString();
     PublicationDetail detail =
         new PublicationDetail(
             pk,
             name,
             description,
             now.getTime(),
             beginDate.getTime(),
             endDate.getTime(),
             creatorId,
             importance,
             version,
             keywords,
             contenu);
     detail.setBeginHour(DateUtil.formatTime(beginDate));
     detail.setEndHour(DateUtil.formatTime(endDate));
     PublicationDAO.insertRow(con, detail);
     PublicationDetail result = PublicationDAO.loadRow(con, pk);
     detail.setUpdateDate(now.getTime());
     detail.setUpdaterId(creatorId);
     detail.setInfoId("0");
     assertEquals(detail.getPK(), result.getPK());
     assertEquals(detail.getAuthor(), result.getAuthor());
     assertEquals(detail.getBeginDate(), result.getBeginDate());
     assertEquals(detail.getBeginHour(), result.getBeginHour());
     assertEquals(detail.getContent(), result.getContent());
     assertEquals(detail.getCreationDate(), result.getCreationDate());
     assertEquals(detail.getUpdateDate(), result.getCreationDate());
     assertEquals(detail.getCreatorId(), result.getCreatorId());
     assertEquals(detail.getDescription(), result.getDescription());
     assertEquals(detail.getEndDate(), result.getEndDate());
     assertEquals(detail.getEndHour(), result.getEndHour());
     assertEquals(detail.getImportance(), result.getImportance());
     assertEquals(detail.getInfoId(), result.getInfoId());
     assertEquals(detail.getInstanceId(), result.getInstanceId());
     assertEquals(detail.getKeywords(), result.getKeywords());
     assertEquals(detail.getName(), result.getName());
     assertEquals(detail.getStatus(), result.getStatus());
     assertEquals(detail.getTitle(), result.getTitle());
   } finally {
     connection.close();
   }
 }
  @Test
  public void testGetAllPublicationsIDbyUserid() throws Exception {

    IDatabaseConnection connection = getConnection();
    try {
      Connection con = connection.getConnection();

      String user100 = "100"; // who created  pub1

      String user200 = "200"; // who updated pub1 and pub2
      String pub1Id = "100";

      PublicationDetail detail1 = PublicationDAO.loadRow(con, new PublicationPK(pub1Id));

      // who created  pub1
      SocialInformationPublication sp1 =
          new SocialInformationPublication(new PublicationWithStatus((detail1), false));
      assertNotNull("SocialInformationPublication1 must be not null", sp1);
      List<SocialInformation> list100 = new ArrayList<SocialInformation>();
      list100.add(sp1);

      Date begin = DateUtil.parse("2008/11/01");
      Date end = DateUtil.parse("2008/11/30");

      List<SocialInformation> list100DOA =
          PublicationDAO.getAllPublicationsIDbyUserid(con, user100, begin, end);
      assertEquals("Must be equal", list100.get(0), list100DOA.get(0));

      // who created pub2
      String user101 = "101"; // who created pub2
      String pub2Id = "101";
      PublicationDetail detail2 = PublicationDAO.loadRow(con, new PublicationPK(pub2Id));
      SocialInformationPublication sp2 =
          new SocialInformationPublication(new PublicationWithStatus((detail2), false));
      assertNotNull("SocialInformationPublication2 must be not null", sp2);

      List<SocialInformation> list101 = new ArrayList<SocialInformation>();
      list101.add(sp2);
      List<SocialInformation> list101DOA =
          PublicationDAO.getAllPublicationsIDbyUserid(con, user101, begin, end);
      assertTrue("Must be equal", list101.get(0).equals(list101DOA.get(0)));

      // who updated pub1 and pub2
      begin = DateUtil.parse("2009/11/01");
      end = DateUtil.parse("2009/11/30");
      SocialInformationPublication sp1User200 =
          new SocialInformationPublication(new PublicationWithStatus((detail1), true));
      assertNotNull("SocialInformationPublication2 must be not null", sp1User200);
      SocialInformationPublication sp2User200 =
          new SocialInformationPublication(new PublicationWithStatus((detail2), true));
      assertNotNull("SocialInformationPublication2 must be not null", sp2User200);
      List<SocialInformation> list200 = new ArrayList<SocialInformation>();
      list200.add(sp2User200);
      list200.add(sp1User200);
      List<SocialInformation> list200DOA =
          PublicationDAO.getAllPublicationsIDbyUserid(con, user200, begin, end);
      assertEquals("Must be equal", list200.get(0), list200DOA.get(0));
      assertEquals("Must be equal", list200.get(1), list200DOA.get(1));

      // test nbr of elements
      list200DOA = PublicationDAO.getAllPublicationsIDbyUserid(con, user200, begin, end);
      assertEquals("Must be equal", list200.get(0), list200DOA.get(0));
      List<String> options = new ArrayList<String>();
      options.add("kmelia200");
      List<String> myContactsIds = new ArrayList<String>();
      myContactsIds.add(user100);
      myContactsIds.add(user200);
      list200DOA =
          PublicationDAO.getSocialInformationsListOfMyContacts(
              con, myContactsIds, options, begin, end);
      assertNotNull("SocialInformationPublication of my contact must be not null", list200DOA);
      assertTrue(
          "SocialInformationPublication of my contact must be not empty", !list200DOA.isEmpty());
    } finally {
      connection.close();
    }
  }
  /** Test of selectByFatherPK method, of class PublicationDAO. */
  @Test
  public void testSelectByFatherPK_5args() throws Exception {
    IDatabaseConnection connection = getConnection();
    try {
      Connection con = connection.getConnection();
      NodePK fatherPK = new NodePK("110", "kmelia200");
      String sorting = null;
      boolean filterOnVisibilityPeriod = false;
      String userId = "100";
      Collection<PublicationDetail> result =
          PublicationDAO.selectByFatherPK(con, fatherPK, sorting, filterOnVisibilityPeriod, userId);
      assertNotNull(result);
      assertEquals(1, result.size());
      Iterator<PublicationDetail> iter = result.iterator();
      PublicationDetail detail = iter.next();
      PublicationPK primaryKey = new PublicationPK("100", "kmelia200");
      assertEquals(primaryKey, detail.getPK());
      assertEquals("Homer Simpson", detail.getAuthor());
      assertEquals("2009/10/18", DateUtil.formatDate(detail.getBeginDate()));
      assertEquals("00:00", detail.getBeginHour());
      assertEquals("Contenu de la publication 1", detail.getContent());
      assertEquals("2008/11/18", DateUtil.formatDate(detail.getCreationDate()));
      assertEquals("100", detail.getCreatorId());
      assertEquals("Première publication de test", detail.getDescription());
      assertEquals("2020/12/18", DateUtil.formatDate(detail.getEndDate()));
      assertEquals("23:59", detail.getEndHour());
      assertEquals(1, detail.getImportance());
      assertEquals("0", detail.getInfoId());
      assertEquals("kmelia200", detail.getInstanceId());
      assertEquals("test", detail.getKeywords());
      assertEquals("Publication 1", detail.getName());
      assertEquals("Valid", detail.getStatus());
      assertEquals("300", detail.getValidatorId());
      assertEquals("Publication 1", detail.getTitle());

      filterOnVisibilityPeriod = true;
      result =
          PublicationDAO.selectByFatherPK(con, fatherPK, sorting, filterOnVisibilityPeriod, userId);
      assertNotNull(result);
      assertEquals(1, result.size());
      iter = result.iterator();
      detail = iter.next();
      primaryKey = new PublicationPK("100", "kmelia200");
      assertEquals(primaryKey, detail.getPK());
      assertEquals("Homer Simpson", detail.getAuthor());
      assertEquals("2009/10/18", DateUtil.formatDate(detail.getBeginDate()));
      assertEquals("00:00", detail.getBeginHour());
      assertEquals("Contenu de la publication 1", detail.getContent());
      assertEquals("2008/11/18", DateUtil.formatDate(detail.getCreationDate()));
      assertEquals("100", detail.getCreatorId());
      assertEquals("Première publication de test", detail.getDescription());
      assertEquals("2020/12/18", DateUtil.formatDate(detail.getEndDate()));
      assertEquals("23:59", detail.getEndHour());
      assertEquals(1, detail.getImportance());
      assertEquals("0", detail.getInfoId());
      assertEquals("kmelia200", detail.getInstanceId());
      assertEquals("test", detail.getKeywords());
      assertEquals("Publication 1", detail.getName());
      assertEquals("Valid", detail.getStatus());
      assertEquals("300", detail.getValidatorId());
      assertEquals("Publication 1", detail.getTitle());
    } finally {
      connection.close();
    }
  }
예제 #24
0
 @AfterMethod(alwaysRun = true)
 public void setDownTest() throws Exception {
   dbConn.close();
 }