Package com.vmware.bdd.utils

Source Code of com.vmware.bdd.utils.TestIpAddressUtil

/***************************************************************************
* Copyright (c) 2012-2013 VMware, Inc. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
***************************************************************************/
package com.vmware.bdd.utils;

import static com.vmware.bdd.utils.IpAddressUtil.getAddressAsLong;
import static com.vmware.bdd.utils.IpAddressUtil.getNetworkPrefixBits;
import static com.vmware.bdd.utils.IpAddressUtil.isValidIp;
import static com.vmware.bdd.utils.IpAddressUtil.isValidNetmask;
import static com.vmware.bdd.utils.IpAddressUtil.networkContains;
import static com.vmware.bdd.utils.IpAddressUtil.verifyIPBlocks;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertTrue;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import com.mchange.util.AssertException;
import com.vmware.bdd.apitypes.IpBlock;
import com.vmware.bdd.exception.BddException;

public class TestIpAddressUtil {
   @BeforeMethod
   public void setup() {

   }

   @AfterMethod
   public void tearDown() {

   }

   @AfterClass
   public static void deleteAll() {
   }

   private Long convertIp(String addr) throws UnknownHostException {
      return IpAddressUtil.getAddressAsLong(InetAddress.getByName(addr));
   }

   @Test
   public void testGetNetworkPrefixBits() throws UnknownHostException {
      assertEquals(32, getNetworkPrefixBits(convertIp("255.255.255.255")));
      assertEquals(30, getNetworkPrefixBits(convertIp("255.255.255.252")));
      assertEquals(24, getNetworkPrefixBits(convertIp("255.255.255.0")));
      assertEquals(16, getNetworkPrefixBits(convertIp("255.255.0.0")));
      assertEquals(8, getNetworkPrefixBits(convertIp("255.0.0.0")));
      assertEquals(1, getNetworkPrefixBits(convertIp("128.0.0.0")));
      assertEquals(3, getNetworkPrefixBits(convertIp((128 + 64 + 32) + ".0.0.0")));

      assertEquals(-1, getNetworkPrefixBits(convertIp("0.0.0.0")));
      assertEquals(-1, getNetworkPrefixBits(convertIp((128 + 64 + 16) + ".0.0.0")));
   }

   @Test
   public void testIsNetmaskValid() throws UnknownHostException {
      assertTrue(isValidNetmask("255.255.255.255"));
      assertTrue(isValidNetmask("255.255.255.252"));
      assertTrue(isValidNetmask("255.255.255.0"));
      assertTrue(isValidNetmask("255.255.0.0"));
      assertTrue(isValidNetmask("255.0.0.0"));
      assertTrue(isValidNetmask("128.0.0.0"));
      assertTrue(isValidNetmask((128 + 64 + 32) + ".0.0.0"));

      assertFalse(isValidNetmask("0.0.0.0"));
      assertFalse(isValidNetmask((128 + 64 + 16) + ".0.0.0"));
   }

   @Test
   public void testNetworkContains() throws UnknownHostException {
      assertTrue(networkContains(convertIp("192.168.1.0"),
            convertIp("255.255.255.0"), convertIp("192.168.1.1")));

      assertTrue(networkContains(convertIp("192.168.1.0"),
            convertIp("255.255.255.0"), convertIp("192.168.1.255")));

      assertTrue(networkContains(convertIp("192.168.1.0"),
            convertIp("255.255.255.0"), convertIp("192.168.1.128")));

      assertFalse(networkContains(convertIp("192.168.1.0"),
            convertIp("255.255.255.0"), convertIp("192.168.2.1")));
   }

   @Test
   public void testGetAddressAsLong() throws UnknownHostException {
      assertEquals(getAddressAsLong("192.168.1.0"), convertIp("192.168.1.0"));
      assertEquals(getAddressAsLong("255.255.255.0"), convertIp("255.255.255.0"));
      assertEquals(getAddressAsLong("192.168.1.128"), convertIp("192.168.1.128"));
      assertEquals(getAddressAsLong("0.0.0.0"), convertIp("0.0.0.0"));
      assertEquals(getAddressAsLong("255.255.255.255"), convertIp("255.255.255.255"));

      assertNull(getAddressAsLong("a.b.c.d"));
      assertNull(getAddressAsLong("256.0.0.0"));
      assertNull(getAddressAsLong("-1.0.0.0"));
      assertNull(getAddressAsLong("1.-1.0.0"));
      assertNull(getAddressAsLong("1..0.0"));
      assertNull(getAddressAsLong("1.0.0"));
      assertNull(getAddressAsLong(""));
   }

   @Test
   public void testIsIpValid() throws UnknownHostException {
      assertTrue(isValidIp("255.255.255.0", "192.168.0.1"));
      assertTrue(isValidIp("255.255.255.0", "192.168.0.254"));
      assertFalse(isValidIp("255.255.255.0", "192.168.0.0"));
      assertFalse(isValidIp("255.255.255.0", "192.168.0.255"));

      assertTrue(isValidIp("255.255.255.128", "192.168.0.129"));
      assertTrue(isValidIp("255.255.255.128", "192.168.0.254"));
      assertFalse(isValidIp("255.255.255.128", "192.168.0.128"));
      assertFalse(isValidIp("255.255.255.128", "192.168.0.255"));

      assertTrue(isValidIp("255.0.0.0", "10.0.0.1"));
      assertTrue(isValidIp("255.0.0.0", "10.255.255.254"));
      assertFalse(isValidIp("255.0.0.0", "10.0.0.0"));
      assertFalse(isValidIp("255.0.0.0", "10.255.255.255"));
   }

   @Test
   public void testVerifyIPBlocks() {
      long netmask = IpAddressUtil.getAddressAsLong("255.255.254.0");
      List<IpBlock> ipBlocks = new ArrayList<IpBlock>();
      ipBlocks.add(new IpBlock("192.168.1.11", "192.168.1.12"));
      verifyIPBlocks(ipBlocks, netmask);
      ipBlocks.clear();
      ipBlocks.add(new IpBlock("", "192.168.1.12"));
      try {
         verifyIPBlocks(ipBlocks, netmask);
      } catch (BddException e) {
         assertEquals(e.getMessage(),
               "Invalid value: IP block=[, 192.168.1.12].");
      }
      ipBlocks.clear();
      ipBlocks.add(new IpBlock("192.168.1.11", ""));
      try {
         verifyIPBlocks(ipBlocks, netmask);
      } catch (BddException e) {
         assertEquals(e.getMessage(),
               "Invalid value: IP block=[192.168.1.11, ].");
      }
      ipBlocks.clear();
      ipBlocks.add(new IpBlock("192.168.1.12", "192.168.1.11"));
      try {
         verifyIPBlocks(ipBlocks, netmask);
      } catch (BddException e) {
         assertEquals(e.getMessage(),
               "Invalid value: IP block=[192.168.1.12, 192.168.1.11].");
      }
   }

}
TOP

Related Classes of com.vmware.bdd.utils.TestIpAddressUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.