package org.archive.format.dns;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import org.archive.format.dns.DNSParseException;
import org.archive.format.dns.DNSRecord;
import org.archive.format.dns.DNSResponse;
import org.archive.format.dns.DNSResponseParser;
import junit.framework.TestCase;
public class DNSResponseParserTest extends TestCase {
DNSResponseParser parser = new DNSResponseParser();
public void testParse() throws DNSParseException, IOException {
verifyResults("20110328212258\nfarm6.static.flickr.a06.yahoodns.net.\t300\tIN\tA\t98.136.170.121\n",
"20110328212258",new String[][] {{"farm6.static.flickr.a06.yahoodns.net.","300","IN","A","98.136.170.121"}});
verifyResults(" 20110328212258 \nfarm6.static.flickr.a06.yahoodns.net.\t300\tIN\tA\t98.136.170.121\n",
"20110328212258",new String[][] {{"farm6.static.flickr.a06.yahoodns.net.","300","IN","A","98.136.170.121"}});
}
private void verifyResults(String res, String date, String d[][]) throws DNSParseException, IOException {
ByteArrayInputStream is =
new ByteArrayInputStream(res.getBytes("UTF-8"));
DNSResponse response = new DNSResponse();
parser.parse(is, response);
verifyResults(response,date,d);
}
private void verifyResults(DNSResponse response, String date, String d[][]) {
assertEquals(date,response.getDate());
assertEquals(d.length, response.size());
for(int i = 0; i < d.length; i++) {
String want[] = d[i];
DNSRecord rec = response.get(i);
assertEquals(want[0],rec.getName());
assertEquals(want[1],String.valueOf(rec.getTtl()));
assertEquals(want[2],rec.getNetClass());
assertEquals(want[3],rec.getType());
assertEquals(want[4],rec.getValue());
}
}
}