TestRecordStore Class — netty Architecture
Architecture documentation for the TestRecordStore class in TestDnsServer.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a8e56c50_d48b_837d_216e_3be7d06f256c["TestRecordStore"] 671a7057_027f_0237_34ae_461bd20152cd["TestDnsServer.java"] a8e56c50_d48b_837d_216e_3be7d06f256c -->|defined in| 671a7057_027f_0237_34ae_461bd20152cd e7d64e72_92f8_60c5_813d_4ad9651983a3["index()"] a8e56c50_d48b_837d_216e_3be7d06f256c -->|method| e7d64e72_92f8_60c5_813d_4ad9651983a3 8c86c80c_e981_921f_4ff0_f03e8a303293["String()"] a8e56c50_d48b_837d_216e_3be7d06f256c -->|method| 8c86c80c_e981_921f_4ff0_f03e8a303293 e27e23c5_6cbd_8a77_13df_7d63c3a0c2e1["ipPart()"] a8e56c50_d48b_837d_216e_3be7d06f256c -->|method| e27e23c5_6cbd_8a77_13df_7d63c3a0c2e1 e5fb0312_c7c7_c99d_cd4f_c44db9178067["TestRecordStore()"] a8e56c50_d48b_837d_216e_3be7d06f256c -->|method| e5fb0312_c7c7_c99d_cd4f_c44db9178067 324cc55f_3212_4860_e147_77ca0e16fb72["getRecords()"] a8e56c50_d48b_837d_216e_3be7d06f256c -->|method| 324cc55f_3212_4860_e147_77ca0e16fb72
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/TestDnsServer.java lines 282–353
private static final class TestRecordStore implements RecordStore {
private static final int[] NUMBERS = new int[254];
private static final char[] CHARS = new char[26];
static {
for (int i = 0; i < NUMBERS.length; i++) {
NUMBERS[i] = i + 1;
}
for (int i = 0; i < CHARS.length; i++) {
CHARS[i] = (char) ('a' + i);
}
}
private static int index(int arrayLength) {
return Math.abs(ThreadLocalRandom.current().nextInt()) % arrayLength;
}
private static String nextDomain() {
return CHARS[index(CHARS.length)] + ".netty.io";
}
private static String nextIp() {
return ipPart() + "." + ipPart() + '.' + ipPart() + '.' + ipPart();
}
private static int ipPart() {
return NUMBERS[index(NUMBERS.length)];
}
private static String nextIp6() {
return IPV6_ADDRESSES[index(IPV6_ADDRESSES.length)];
}
private final Set<String> domains;
private TestRecordStore(Set<String> domains) {
this.domains = domains;
}
@Override
public Set<ResourceRecord> getRecords(QuestionRecord questionRecord) {
String name = questionRecord.getDomainName();
if (domains.contains(name)) {
Map<String, Object> attr = new HashMap<String, Object>();
switch (questionRecord.getRecordType()) {
case A:
do {
attr.put(DnsAttribute.IP_ADDRESS.toLowerCase(Locale.US), nextIp());
} while (ThreadLocalRandom.current().nextBoolean());
break;
case AAAA:
do {
attr.put(DnsAttribute.IP_ADDRESS.toLowerCase(Locale.US), nextIp6());
} while (ThreadLocalRandom.current().nextBoolean());
break;
case MX:
int priority = 0;
do {
attr.put(DnsAttribute.DOMAIN_NAME.toLowerCase(Locale.US), nextDomain());
attr.put(DnsAttribute.MX_PREFERENCE.toLowerCase(Locale.US), String.valueOf(++priority));
} while (ThreadLocalRandom.current().nextBoolean());
break;
default:
return null;
}
return Collections.<ResourceRecord>singleton(
new TestResourceRecord(name, questionRecord.getRecordType(), attr));
}
return null;
}
}
Source
Frequently Asked Questions
What is the TestRecordStore class?
TestRecordStore is a class in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/TestDnsServer.java.
Where is TestRecordStore defined?
TestRecordStore is defined in resolver-dns/src/test/java/io/netty/resolver/dns/TestDnsServer.java at line 282.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free