/* * dnssecjava - a DNSSEC validating stub resolver for Java * Copyright (c) 2013-2015 Ingo Bauersachs * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.jitsi.dnssec; import static org.junit.Assert.*; import java.net.InetAddress; import java.net.UnknownHostException; import org.jitsi.dnssec.validator.DnsSecVerifier; import org.jitsi.dnssec.validator.ResponseClassification; import org.junit.Before; import org.junit.Test; import org.xbill.DNS.ARecord; import org.xbill.DNS.DClass; import org.xbill.DNS.Message; import org.xbill.DNS.Name; import org.xbill.DNS.OPTRecord; import org.xbill.DNS.RRset; import org.xbill.DNS.Record; import org.xbill.DNS.Section; import org.xbill.DNS.Type; /** * These test run checks that are unable to occur during actual validations. * * @author Ingo Bauersachs */ public class TestNormallyUnreachableCode { private InetAddress localhost; @Before public void setUp() throws UnknownHostException { localhost = InetAddress.getByAddress(new byte[] { 127, 0, 0, 1 }); } @Test public void testVerifyWithoutSignaturesIsBogus() { DnsSecVerifier verifier = new DnsSecVerifier(); ARecord record = new ARecord(Name.root, DClass.IN, 120, localhost); RRset set = new RRset(record); RRset keys = new RRset(); SecurityStatus result = verifier.verify(set, keys); assertEquals(SecurityStatus.BOGUS, result); } @Test public void useAllEnumCode() { SecurityStatus.valueOf(SecurityStatus.values()[0].toString()); ResponseClassification.valueOf(ResponseClassification.values()[0].toString()); } @Test public void testSmessageReturnsOptRecordOfOriginal() { int xrcode = 0xFED; Message m = Message.newQuery(Record.newRecord(Name.root, Type.NS, DClass.IN)); m.getHeader().setRcode(xrcode & 0xF); m.addRecord(new OPTRecord(1, xrcode >> 4, 1), Section.ADDITIONAL); SMessage sm = new SMessage(m); assertEquals(m.toString(), sm.getMessage().toString()); assertEquals(xrcode, sm.getRcode()); } @Test public void testCopyMessageWithoutQuestion() { Message m = new Message(); m.addRecord(new ARecord(Name.root, DClass.IN, 120, localhost), Section.ANSWER); SMessage sm = new SMessage(m); assertEquals(m.toString(), sm.getMessage().toString()); } }