001/* 002 * Copyright 2015-2024 the original author or authors 003 * 004 * This software is licensed under the Apache License, Version 2.0, 005 * the GNU Lesser General Public License version 2 or later ("LGPL") 006 * and the WTFPL. 007 * You may choose either license to govern your use of this software only 008 * upon the condition that you accept all of the terms of either 009 * the Apache License 2.0, the LGPL 2.1+ or the WTFPL. 010 */ 011package org.minidns.integrationtest; 012 013import org.minidns.DnsCache; 014import org.minidns.cache.ExtendedLruCache; 015import org.minidns.cache.FullLruCache; 016import org.minidns.cache.LruCache; 017import org.minidns.dnssec.DnssecClient; 018import org.minidns.source.NetworkDataSourceWithAccounting; 019 020public class IntegrationTestTools { 021 022 public enum CacheConfig { 023 without, 024 normal, 025 extended, 026 full, 027 } 028 029 public static DnssecClient getClient(CacheConfig cacheConfig) { 030 DnsCache cache; 031 switch (cacheConfig) { 032 case without: 033 cache = null; 034 break; 035 case normal: 036 cache = new LruCache(); 037 break; 038 case extended: 039 cache = new ExtendedLruCache(); 040 break; 041 case full: 042 cache = new FullLruCache(); 043 break; 044 default: 045 throw new IllegalStateException(); 046 } 047 048 DnssecClient client = new DnssecClient(cache); 049 client.setDataSource(new NetworkDataSourceWithAccounting()); 050 return client; 051 } 052 053}