package com.verisign.iot.discovery.utils; import com.verisign.iot.discovery.commons.Constants; import org.junit.Assert; import org.junit.Test; /** * Created by tjmurphy on 6/8/15. */ public class RDataUtilTest { ///////////////////////////////////////////// ///////////// Positive Tests /////////// ///////////////////////////////////////////// @Test public void getDnsFromLabelFromRDataTest () { String testRData = ""; String nullString = null; testRData = "_0._tcp"; Assert.assertTrue("_0._tcp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_0._tcp" + Constants.LABEL; Assert.assertTrue("_0._tcp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_0._tcp" + Constants.NAME; Assert.assertTrue("_0._tcp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_0._tcp.asodweasdfj.com"; Assert.assertTrue("_0._tcp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_0._udp.asodweasdfj.com"; Assert.assertTrue("_0._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_0._udp.asodweasdfj.1.com"; Assert.assertTrue("_0._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_0._udp.asodweasdfj.1.aa.23.asasfd.com"; Assert.assertTrue("_0._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_0._udp.asodweasdfj"; Assert.assertTrue("_0._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_65535._tcp.asodweasdfj.com"; Assert.assertTrue("_65535._tcp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_65535._udp.asodweasdfj.com"; Assert.assertTrue("_65535._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_65535._udp.asodweasdfj.1.com"; Assert.assertTrue("_65535._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_65535._udp.asodweasdfj.1.aa.23.asasfd.com"; Assert.assertTrue("_65535._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); testRData = "_65535._udp.asodweasdfj"; Assert.assertTrue("_65535._udp".equals( RDataUtil.getDnsLabelFromRData( testRData ) )); } ///////////////////////////////////////////// ///////////// Negative Tests /////////// ///////////////////////////////////////////// @Test(expected = IllegalArgumentException.class) public void nullStringTest(){ RDataUtil.getDnsLabelFromRData( null ); } @Test(expected = IllegalArgumentException.class) public void emptyStringTest(){ RDataUtil.getDnsLabelFromRData( "" ); } @Test(expected = IllegalArgumentException.class) public void blankStringTest(){ RDataUtil.getDnsLabelFromRData( " " ); } @Test(expected = IllegalArgumentException.class) public void oneLabelStringTest(){ RDataUtil.getDnsLabelFromRData( ".com" ); } @Test(expected = IllegalArgumentException.class) public void oneLabelTCPStringTest(){ RDataUtil.getDnsLabelFromRData( "._tcp" ); } @Test(expected = IllegalArgumentException.class) public void oneLabelUDPStringTest(){ RDataUtil.getDnsLabelFromRData( "._udp" ); } @Test(expected = IllegalArgumentException.class) public void emptyLabelUDPStringTest(){ RDataUtil.getDnsLabelFromRData( " ._udp" ); } @Test(expected = IllegalArgumentException.class) public void emptyLabelTLDStringTest(){ RDataUtil.getDnsLabelFromRData( " .com" ); } @Test(expected = IllegalArgumentException.class) public void validDomainNoDNSLabelTest(){ RDataUtil.getDnsLabelFromRData( "abc.verisign.com" ); } @Test(expected = IllegalArgumentException.class) public void longerValidDomainNoDNSLabelTest(){ RDataUtil.getDnsLabelFromRData( "1.abc.xyz.verisign.com" ); } ///////////////////////////////////////////// ///////////// Positive Tests /////////// ///////////////////////////////////////////// @Test public void getServiceTypeNameFromRDataTest () { String testRData = ""; testRData = "cool service type" + Constants.NAME; Assert.assertTrue("cool service type".equals( RDataUtil.getServiceTypeNameFromRData( testRData ) )); testRData = "mqtt" + Constants.NAME; Assert.assertTrue("mqtt".equals( RDataUtil.getServiceTypeNameFromRData( testRData ) )); testRData = "mqtt" + Constants.NAME + " "; Assert.assertTrue("mqtt".equals( RDataUtil.getServiceTypeNameFromRData( testRData ) )); testRData = "mqtt" + Constants.NAME + ".asdja898.asd232l.asdflk "; Assert.assertTrue("mqtt".equals( RDataUtil.getServiceTypeNameFromRData( testRData ) )); testRData = "something-with-some-hyphens" + Constants.NAME; Assert.assertTrue("something-with-some-hyphens".equals( RDataUtil.getServiceTypeNameFromRData( testRData ) )); testRData = "iot's awesome service type!" + Constants.NAME; Assert.assertTrue("iot's awesome service type!".equals( RDataUtil.getServiceTypeNameFromRData( testRData ) )); } ///////////////////////////////////////////// ///////////// Negative Tests /////////// ///////////////////////////////////////////// @Test(expected = IllegalArgumentException.class) public void nullStringSTTest(){ RDataUtil.getServiceTypeNameFromRData( null ); } @Test(expected = IllegalArgumentException.class) public void emptyStringSTTest(){ RDataUtil.getServiceTypeNameFromRData( "" ); } @Test(expected = IllegalArgumentException.class) public void blankStringSTTest(){ RDataUtil.getServiceTypeNameFromRData( " " ); } @Test(expected = IllegalArgumentException.class) public void nameWithSpacesNoNameLabelTest(){ RDataUtil.getServiceTypeNameFromRData( "cool service type" ); } @Test(expected = IllegalArgumentException.class) public void nameWithHyphensNoNameLabelTest(){ RDataUtil.getServiceTypeNameFromRData( "something-with-some-hyphens" ); } @Test(expected = IllegalArgumentException.class) public void mqttNoNameLabelTest(){ RDataUtil.getServiceTypeNameFromRData( "mqtt" ); } @Test(expected = IllegalArgumentException.class) public void onlyNameLabelTest(){ RDataUtil.getServiceTypeNameFromRData( Constants.NAME ); } @Test(expected = IllegalArgumentException.class) public void onlyNameAndWhitespaceInFrontLabelTest(){ RDataUtil.getServiceTypeNameFromRData( " " + Constants.NAME ); } }