Refactore MDNS so it can be tested, and also added Junit test for it
This commit is contained in:
parent
6a3744eb99
commit
84a3b13b76
4 changed files with 150 additions and 17 deletions
80
test/zutil/net/dns/MulticastDnsServerTest.java
Executable file
80
test/zutil/net/dns/MulticastDnsServerTest.java
Executable file
|
|
@ -0,0 +1,80 @@
|
|||
package zutil.net.dns;
|
||||
|
||||
import org.junit.Test;
|
||||
import zutil.net.dns.packet.DnsConstants;
|
||||
import zutil.net.dns.packet.DnsPacket;
|
||||
import zutil.net.dns.packet.DnsPacketQuestion;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class MulticastDnsServerTest {
|
||||
|
||||
private MulticastDnsServer server = new MulticastDnsServer();
|
||||
public MulticastDnsServerTest() throws IOException {}
|
||||
|
||||
|
||||
@Test
|
||||
public void domainLookupNoEntries(){
|
||||
DnsPacket request = creatRequestDnsPacket(
|
||||
"example.com",
|
||||
DnsConstants.TYPE.A);
|
||||
|
||||
DnsPacket response = server.handleReceivedPacket(request);
|
||||
assertNull(response);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void domainLookup() throws UnknownHostException {
|
||||
DnsPacket request = creatRequestDnsPacket(
|
||||
"example.com",
|
||||
DnsConstants.TYPE.A);
|
||||
|
||||
server.addEntry("example.com", InetAddress.getLocalHost());
|
||||
DnsPacket response = server.handleReceivedPacket(request);
|
||||
assertNotNull(response);
|
||||
assertEquals("example.com", response.getAnswerRecords().get(0).name);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void serviceDiscoveryNoEntries(){
|
||||
DnsPacket request = creatRequestDnsPacket(
|
||||
"_service._tcp.local",
|
||||
DnsConstants.TYPE.PTR);
|
||||
|
||||
DnsPacket response = server.handleReceivedPacket(request);
|
||||
assertNull(response);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void serviceDiscovery() throws UnknownHostException {
|
||||
DnsPacket request = creatRequestDnsPacket(
|
||||
"_service._tcp.local",
|
||||
DnsConstants.TYPE.PTR);
|
||||
|
||||
server.addEntry("_http._tcp.local", InetAddress.getLocalHost());
|
||||
DnsPacket response = server.handleReceivedPacket(request);
|
||||
assertNotNull(response);
|
||||
}
|
||||
|
||||
|
||||
private static DnsPacket creatRequestDnsPacket(String domain, int type){
|
||||
DnsPacket request = new DnsPacket();
|
||||
request.getHeader().setDefaultQueryData();
|
||||
DnsPacketQuestion question = new DnsPacketQuestion();
|
||||
question.name = domain;
|
||||
question.type = type;
|
||||
question.clazz = DnsConstants.CLASS.IN;
|
||||
request.addQuestion(question);
|
||||
return request;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue