/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
package org.openstack.atlas.api.validate;
import org.openstack.atlas.docs.loadbalancers.api.v1.AccessList;
import org.openstack.atlas.docs.loadbalancers.api.v1.IpVersion;
import java.util.Set;
import org.openstack.atlas.docs.loadbalancers.api.v1.NetworkItem;
import org.openstack.atlas.docs.loadbalancers.api.v1.NetworkItemType;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
@RunWith(Enclosed.class)
public class AccessListValidatorTest_ {
public static class WhenValidatingaccesslist {
private NetworkItemType[] networkItemTypes;
private Set<NetworkItemType> networkItemTypeSet;
private Set<NetworkItemType> badnetworkItemTypeSet;
private NetworkItem invalidHost;
private NetworkItem invalidSubnet;
private NetworkItem validHost;
private NetworkItem validSubnet;
private NetworkItem noIp;
private NetworkItem noType;
private NetworkItem noTypeorIP;
private NetworkItem noIpVersion;
private AccessList emptyaccesslist;
private AccessList singleItemaccesslist;
private AccessList multiItemaccesslist;
private AccessList invalidHostInaccesslist;
private AccessList invalidSubnetInaccesslist;
private AccessList nullaccesslist;
private AccessList noIpInaccesslist;
private AccessList noTypeInaccesslist;
private AccessList noTypeOrIpInaccesslist;
private AccessList noIpVersionInaccesslist;
public NetworkItem NetWorkItemTypeInit(String Address, String nType, String ipversion) {
NetworkItem out = new NetworkItem();
out.setAddress(Address);
out.setType(NetworkItemType.valueOf(nType));
return out;
}
@Before
public void initializeVars() {
noTypeorIP = new NetworkItem();
noTypeOrIpInaccesslist = new AccessList();
noTypeOrIpInaccesslist.getNetworkItems().add(noTypeorIP);
invalidHost = NetWorkItemTypeInit("www.google.com", "ALLOW","IPV_4");
invalidSubnet = NetWorkItemTypeInit("www.google.com/24", "ALLOW","IPV_4");
validHost = NetWorkItemTypeInit("192.168.3.51", "ALLOW","IPV_4");
validSubnet = NetWorkItemTypeInit("192.168.2.0/24", "DENY","IPV_4");
nullaccesslist = null;
emptyaccesslist = new AccessList();
singleItemaccesslist = new AccessList();
singleItemaccesslist.getNetworkItems().add(validHost);
multiItemaccesslist = new AccessList();
multiItemaccesslist.getNetworkItems().add(validHost);
multiItemaccesslist.getNetworkItems().add(validSubnet);
invalidHostInaccesslist = new AccessList();
invalidHostInaccesslist.getNetworkItems().add(invalidHost);
invalidHostInaccesslist.getNetworkItems().add(validHost);
invalidSubnetInaccesslist = new AccessList();
invalidSubnetInaccesslist.getNetworkItems().add(invalidSubnet);
invalidSubnetInaccesslist.getNetworkItems().add(validSubnet);
noIp = new NetworkItem();
noIp.setType(NetworkItemType.ALLOW);
noIpVersion = new NetworkItem();
noIpVersion.setAddress("127.0.0.2");
noIpVersion.setType(NetworkItemType.ALLOW);
noType = new NetworkItem();
noType.setAddress("127.0.0.1");
noIpInaccesslist = new AccessList();
noIpInaccesslist.getNetworkItems().add(noIp);
noTypeInaccesslist = new AccessList();
noTypeInaccesslist.getNetworkItems().add(noType);
noIpVersionInaccesslist = new AccessList();
noIpVersionInaccesslist.getNetworkItems().add(noIpVersion);
}
@Test
public void ShouldHaveIPinEachNetworkItem() {
assertFalse("Expected rejection of NetworkItem with no IP", new AccessListValidator_()
.validate(noIpInaccesslist).passedValidation());
assertTrue("Expected Acceptence of NetworkItem with IP",new AccessListValidator_()
.validate(multiItemaccesslist).passedValidation());
assertFalse("Expected rejection of accesslist network item with no type and no ip",new AccessListValidator_().
validate(noTypeOrIpInaccesslist).passedValidation());
}
@Test
public void ShouldHaveTypeinEachNetworkItem() {
assertFalse("Expected network item with null type in accesslist to Fail validation", new AccessListValidator_()
.validate(noTypeInaccesslist).passedValidation());
assertTrue("Expected accesslist with non null type in network item to pass validation",new AccessListValidator_()
.validate(multiItemaccesslist).passedValidation());
assertFalse("Expected rejection of accesslist network item with no type and no ip",new AccessListValidator_().
validate(noTypeOrIpInaccesslist).passedValidation());
}
@Test
public void ShouldHaveValidTypeinEachNetworkItem() {
assertFalse("Expected accesslist networkitem with out a valid Type to be rejected", new AccessListValidator_()
.validate(noTypeInaccesslist).passedValidation());
assertTrue("Expected accesslist networkitem with valid Type to be accepted", new AccessListValidator_()
.validate(multiItemaccesslist).passedValidation());
}
public void ShouldHaveValidIpVersioninEachNetworkItem() {
assertFalse("Expected accesslist networkitem with out a valid ipVersion to be rejected", new AccessListValidator_()
.validate(noIpVersionInaccesslist).passedValidation());
assertTrue("Expected accesslist networkitem with valid IpVersion to be accepted", new AccessListValidator_()
.validate(multiItemaccesslist).passedValidation());
}
@Test
public void shouldNotBeEmpty() {
assertFalse("Expected emptyaccesslist to fail validation", new AccessListValidator_().validate(emptyaccesslist).passedValidation());
assertTrue("Expected singleItemaccesslist to pass Validation", new AccessListValidator_().validate(singleItemaccesslist).passedValidation());
assertTrue("Expected multiItemaccesslist to fail Validation", new AccessListValidator_().validate(multiItemaccesslist).passedValidation());
}
@Test
public void shouldRejectbadHostipv4Items() {
assertFalse("Expected accesslist Networkitem with bad IP to fail validation", new AccessListValidator_().validate(invalidHostInaccesslist).passedValidation());
assertTrue("Expected accesslist Networkitems with all good IPs to pass validation",new AccessListValidator_().validate(multiItemaccesslist).passedValidation());
}
@Test
public void shouldRejectbadipv4SubnetItems() {
assertFalse("Expected rejection of Bad Subnet in networkitems", new AccessListValidator_().validate(invalidSubnetInaccesslist).passedValidation());
assertTrue("Expected Acceptance of Good Subnet in networkitems", new AccessListValidator_().validate(multiItemaccesslist).passedValidation());
}
@Test
public void ShouldHaveIpVersioninEachNetworkItem() {
assertFalse("Expected rejection of networkitem without ipversion",new AccessListValidator_().validate(noIpVersionInaccesslist).passedValidation());
assertTrue("Expected Acceptance of networkitem with ipversion",new AccessListValidator_().validate(multiItemaccesslist).passedValidation());
}
}
}
*/