/**
* Copyright 2015, Big Switch Networks, Inc.
* Originally created by Pengfei Lu, Network and Cloud Computing Laboratory, Dalian University of Technology, China
* Advisers: Keqiu Li and Heng Qi
* This work is supported by the State Key Program of National Natural Science of China(Grant No. 61432002)
* and Prospective Research Project on Future Networks in Jiangsu Future Networks Innovation Institute.
*
* 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 net.floodlightcontroller.accesscontrollist;
import static org.junit.Assert.*;
import java.util.HashSet;
import java.util.Set;
import net.floodlightcontroller.accesscontrollist.ap.AP;
import net.floodlightcontroller.accesscontrollist.ap.APManager;
import net.floodlightcontroller.accesscontrollist.util.IPAddressUtil;
import net.floodlightcontroller.test.FloodlightTestCase;
import org.junit.Test;
public class APManagerTest extends FloodlightTestCase {
@Test
public void testGetDpidSet(){
AP ap1 = new AP("10.0.0.1","00:00:00:00:00:00:00:01");
AP ap2 = new AP("10.0.0.2","00:00:00:00:00:00:00:02");
AP ap3 = new AP("10.0.0.3","00:00:00:00:00:00:00:03");
APManager apManager = new APManager();
apManager.addAP(ap1);
apManager.addAP(ap2);
apManager.addAP(ap3);
int cidr[];
// test CIDR IP with suffix that equals "/32"
cidr = IPAddressUtil.parseCIDR("10.0.0.1/32");
Set<String> resultSet = apManager.getDpidSet(cidr[0],cidr[1]);
Set<String> expectedSet = new HashSet<String>();
expectedSet.add("00:00:00:00:00:00:00:01");
assertEquals(resultSet, expectedSet);
// test CIDR IP with suffix that does not equal "/32"
cidr = IPAddressUtil.parseCIDR("10.0.0.1/30");
resultSet = apManager.getDpidSet(cidr[0],cidr[1]);
expectedSet = new HashSet<String>();
expectedSet.add("00:00:00:00:00:00:00:01");
expectedSet.add("00:00:00:00:00:00:00:02");
expectedSet.add("00:00:00:00:00:00:00:03");
assertEquals(resultSet, expectedSet);
// test CIDR IP does not exist in the network
cidr = IPAddressUtil.parseCIDR("10.0.0.4/32");
resultSet = apManager.getDpidSet(cidr[0],cidr[1]);
expectedSet = new HashSet<String>();
assertEquals(resultSet, expectedSet);
}
}