Ejemplo n.º 1
0
  @Test
  public void testUpdateRecord_illegalAnyType() throws Exception {

    testCleanDatabase();

    assertEquals(0, dnsDao.count());

    DNSRecord record1 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");
    dnsDao.add(Arrays.asList(record1));

    Collection<DNSRecord> records = dnsDao.get(Type.ANY);
    assertEquals(1, records.size());
    DNSRecord checkRecord = records.iterator().next();
    assertEquals(record1, checkRecord);

    checkRecord.setType(Type.ANY);

    boolean exceptionOccured = false;
    try {
      dnsDao.update(checkRecord.getId(), checkRecord);
    } catch (ConfigurationStoreException e) {
      exceptionOccured = true;
    }
    assertTrue(exceptionOccured);
  }
Ejemplo n.º 2
0
  @Test
  public void testCleanDatabase() throws Exception {
    Collection<DNSRecord> records = dnsDao.get(Type.ANY);

    if (records != null && records.size() > 0) {
      for (DNSRecord record : records) dnsDao.remove(record.getId());
    }
    records = dnsDao.get(Type.ANY);

    assertEquals(0, records.size());
  }
Ejemplo n.º 3
0
  @Test
  public void testAddRecord_invalidType() throws Exception {

    testCleanDatabase();

    DNSRecord record = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");
    record.setType(Type.ANY);

    boolean exceptionOccured = false;
    try {
      dnsDao.add(Arrays.asList(record));
    } catch (ConfigurationStoreException e) {
      exceptionOccured = true;
    }

    assertTrue(exceptionOccured);
  }
Ejemplo n.º 4
0
  @Test
  public void testRemoveByIds() throws Exception {

    testCleanDatabase();

    assertEquals(0, dnsDao.count());

    // Add 5 record
    DNSRecord record1 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");
    DNSRecord record2 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.2");
    DNSRecord record3 = DNSRecordUtils.createARecord("example2.domain.com", 86400L, "127.0.0.3");
    DNSRecord record4 =
        DNSRecordUtils.createSRVRecord(
            "_ldap_cerner._tcp.cerner.com", "example.domain.com", 86400L, 3506, 1, 1);
    DNSRecord record5 =
        DNSRecordUtils.createSRVRecord(
            "_ldap_cerner._tcp.cerner.com", "example2.domain.com", 86400L, 3506, 1, 1);
    dnsDao.add(Arrays.asList(record1, record2, record3, record4, record5));

    assertEquals(5, dnsDao.count());

    // remove record 3
    Collection<DNSRecord> records = dnsDao.get(record3.getName());
    assertEquals(1, records.size());
    dnsDao.remove(records.iterator().next().getId());
    records = dnsDao.get(Type.ANY);
    assertEquals(4, dnsDao.count());
    assertTrue(records.contains(record1));
    assertTrue(records.contains(record2));
    assertTrue(records.contains(record4));
    assertTrue(records.contains(record5));

    // remove the rest
    long[] ids = new long[records.size()];
    int cnt = 0;
    for (DNSRecord record : records) ids[cnt++] = record.getId();

    dnsDao.remove(ids);
    records = dnsDao.get(Type.ANY);
    assertEquals(0, records.size());
  }
Ejemplo n.º 5
0
  @Test
  public void testMultipleARecords_differentRdata() throws Exception {

    testCleanDatabase();

    DNSRecord record1 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");

    dnsDao.add(Arrays.asList(record1));

    DNSRecord record2 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.2");
    dnsDao.add(Arrays.asList(record2));
    /*
     * Get by name
     */
    Collection<DNSRecord> records = dnsDao.get(record1.getName());

    assertEquals(2, records.size());

    records.contains(record1);
    records.contains(record2);
  }
Ejemplo n.º 6
0
  @Test
  public void testUpdateRecord() throws Exception {

    testCleanDatabase();

    assertEquals(0, dnsDao.count());

    DNSRecord record1 = DNSRecordUtils.createMXRecord("example.domain.com", "127.0.0.1", 86400L, 1);
    dnsDao.add(Arrays.asList(record1));

    Collection<DNSRecord> records = dnsDao.get(Type.ANY);
    assertEquals(1, records.size());
    DNSRecord checkRecord = records.iterator().next();
    assertEquals(record1, checkRecord);

    checkRecord.setName("example2.domain.com.");
    dnsDao.update(checkRecord.getId(), checkRecord);

    records = dnsDao.get(Type.ANY);
    assertEquals(1, records.size());
    DNSRecord modRecord = records.iterator().next();
    assertEquals(checkRecord, modRecord);
  }
Ejemplo n.º 7
0
  @Test
  public void testGetByRecord() throws Exception {

    testCleanDatabase();

    DNSRecord record1 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");
    DNSRecord record2 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.2");
    DNSRecord record3 = DNSRecordUtils.createARecord("example2.domain.com", 86400L, "127.0.0.3");
    DNSRecord record4 =
        DNSRecordUtils.createSRVRecord(
            "_ldap_cerner._tcp.cerner.com", "example.domain.com", 86400L, 3506, 1, 1);
    DNSRecord record5 =
        DNSRecordUtils.createSRVRecord(
            "_ldap_cerner._tcp.cerner.com", "example2.domain.com", 86400L, 3506, 1, 1);
    dnsDao.add(Arrays.asList(record1, record2, record3, record4, record5));

    Collection<DNSRecord> records = dnsDao.get(record3.getName());

    assertEquals(1, records.size());
    DNSRecord checkRec = dnsDao.get(records.iterator().next().getId());
    assertNotNull(checkRec);
    assertEquals(checkRec, record3);

    records = dnsDao.get(Type.ANY);
    assertEquals(5, records.size());
    long[] ids = new long[records.size()];
    int cnt = 0;
    for (DNSRecord record : records) ids[cnt++] = record.getId();

    records = dnsDao.get(ids);
    assertEquals(5, records.size());
    assertTrue(records.contains(record1));
    assertTrue(records.contains(record2));
    assertTrue(records.contains(record3));
    assertTrue(records.contains(record4));
    assertTrue(records.contains(record5));
  }
Ejemplo n.º 8
0
 /** JmDNS callback to update a DNS record. */
 public void updateRecord(JmDNS jmdns, long now, DNSRecord rec) {
   if ((rec != null) && !rec.isExpired(now)) {
     switch (rec.type) {
       case DNSConstants.TYPE_A: // IPv4
       case DNSConstants.TYPE_AAAA: // IPv6
         // This has not been tested
         if (rec.name.equals(server)) {
           addr = ((DNSRecord.Address) rec).getAddress();
         }
         break;
       case DNSConstants.TYPE_SRV:
         if (rec.name.equals(getQualifiedName())) {
           DNSRecord.Service srv = (DNSRecord.Service) rec;
           server = srv.server;
           port = srv.port;
           weight = srv.weight;
           priority = srv.priority;
           addr = null;
           // changed to use getCache() instead - jeffs
           // updateRecord(jmdns, now,
           // (DNSRecord)jmdns.cache.get(server, TYPE_A, CLASS_IN));
           updateRecord(
               jmdns,
               now,
               (DNSRecord)
                   jmdns.getCache().get(server, DNSConstants.TYPE_A, DNSConstants.CLASS_IN));
         }
         break;
       case DNSConstants.TYPE_TXT:
         if (rec.name.equals(getQualifiedName())) {
           DNSRecord.Text txt = (DNSRecord.Text) rec;
           text = txt.text;
         }
         break;
     }
     // Future Design Pattern
     // This is done, to notify the wait loop in method
     // JmDNS.getServiceInfo(type, name, timeout);
     if (hasData() && dns != null) {
       dns.handleServiceResolved(this);
       dns = null;
     }
     synchronized (this) {
       notifyAll();
     }
   }
 }
Ejemplo n.º 9
0
  @Test
  public void testMultipleARecords() throws Exception {

    testCleanDatabase();

    DNSRecord record1 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");
    DNSRecord record2 = DNSRecordUtils.createARecord("example2.domain.com", 86400L, "74.22.43.123");
    DNSRecord record3 = DNSRecordUtils.createARecord("sample.domain.com", 86400L, "81.142.48.20");

    dnsDao.add(Arrays.asList(record1, record2, record3));

    /*
     * Get by name
     */
    Collection<DNSRecord> records = dnsDao.get(record1.getName());

    assertEquals(1, records.size());

    DNSRecord compareRec = records.iterator().next();
    assertEquals(record1.getName(), compareRec.getName());
    assertEquals(Type.A, compareRec.getType());

    /*
     * Get all types
     */
    records = dnsDao.get(Type.ANY);
    assertEquals(3, records.size());

    assertTrue(records.contains(record1));
    assertTrue(records.contains(record2));
    assertTrue(records.contains(record3));

    /*
     * Get A only
     */
    records = dnsDao.get(Type.A);
    assertEquals(3, records.size());

    assertTrue(records.contains(record1));
    assertTrue(records.contains(record2));
    assertTrue(records.contains(record3));

    /*
     * Get SRV only
     */
    records = dnsDao.get(Type.SRV);
    assertEquals(0, records.size());
  }
Ejemplo n.º 10
0
  @Test
  public void testAddSingleARecords() throws Exception {

    testCleanDatabase();

    // Add 1 record
    DNSRecord record = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");
    dnsDao.add(Arrays.asList(record));

    Collection<DNSRecord> records = dnsDao.get(record.getName());

    assertEquals(1, records.size());

    DNSRecord compareRec = records.iterator().next();
    assertEquals(record.getName(), compareRec.getName());
    assertEquals(Type.A, compareRec.getType());
  }
Ejemplo n.º 11
0
  @Test
  public void testGetByName() throws Exception {

    testCleanDatabase();

    DNSRecord record1 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.1");
    DNSRecord record2 = DNSRecordUtils.createARecord("example.domain.com", 86400L, "127.0.0.2");
    DNSRecord record3 = DNSRecordUtils.createARecord("example2.domain.com", 86400L, "127.0.0.3");
    DNSRecord record4 =
        DNSRecordUtils.createSRVRecord(
            "_ldap_cerner._tcp.cerner.com", "example.domain.com", 86400L, 3506, 1, 1);
    DNSRecord record5 =
        DNSRecordUtils.createSRVRecord(
            "_ldap_cerner._tcp.cerner.com", "example2.domain.com", 86400L, 3506, 1, 1);
    dnsDao.add(Arrays.asList(record1, record2, record3, record4, record5));

    Collection<DNSRecord> records = dnsDao.get(record1.getName());

    assertEquals(2, records.size());
    assertTrue(records.contains(record1));
    assertTrue(records.contains(record2));

    records = dnsDao.get(record3.getName());

    assertEquals(1, records.size());
    assertTrue(records.contains(record3));

    records = dnsDao.get(record4.getName());

    assertEquals(2, records.size());
    assertTrue(records.contains(record4));
    assertTrue(records.contains(record5));

    records = dnsDao.get("bogus.com.");

    assertEquals(0, records.size());
  }