package edu.harvard.iq.dataverse.authorization.groups.impl.ipaddress;
import edu.harvard.iq.dataverse.authorization.groups.impl.ipaddress.ip.IpAddress;
import edu.harvard.iq.dataverse.authorization.groups.impl.ipaddress.ip.IpAddressRange;
import edu.harvard.iq.dataverse.authorization.users.GuestUser;
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
import edu.harvard.iq.dataverse.mocks.MocksFactory;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author michael
*/
public class IpGroupTest {
public IpGroupTest() {
}
/**
* Test of contains method, of class IpGroup.
*/
@Test
public void testContains() {
IpGroup sut = new IpGroup();
sut.setId(MocksFactory.nextId());
sut.setDescription("A's description");
sut.setDisplayName("A");
sut.setPersistedGroupAlias("&ip/a");
final IpAddressRange allIPv4 = IpAddressRange.make(IpAddress.valueOf("0.0.0.0"), IpAddress.valueOf("255.255.255.255"));
final IpAddressRange allIPv6 = IpAddressRange.make(IpAddress.valueOf("0:0:0:0:0:0:0:0"),
IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"));
sut.add(allIPv4);
sut.add(allIPv6);
assertTrue( sut.contains(new DataverseRequest(GuestUser.get(), IpAddress.valueOf("1.2.3.4"))) );
assertTrue( sut.contains(new DataverseRequest(GuestUser.get(), IpAddress.valueOf("11::fff"))) );
sut.remove( allIPv4 );
assertFalse( sut.contains(new DataverseRequest(GuestUser.get(), IpAddress.valueOf("1.2.3.4"))) );
sut.remove( allIPv6 );
assertFalse( sut.contains(new DataverseRequest(GuestUser.get(), IpAddress.valueOf("11::fff"))) );
sut.add( IpAddressRange.make(IpAddress.valueOf("0.0.0.0"), IpAddress.valueOf("168.0.0.0")) );
assertFalse( sut.contains(new DataverseRequest(GuestUser.get(), IpAddress.valueOf("169.0.0.0"))) );
assertTrue( sut.contains(new DataverseRequest(GuestUser.get(), IpAddress.valueOf("167.0.0.0"))) );
}
/**
* Test of isEditable method, of class IpGroup.
*/
@Test
public void testIsEditable() {
IpGroup instance = new IpGroup();
assertTrue( instance.isEditable() );
}
/**
* Test of equals method, of class IpGroup.
*/
@Test
public void testEquals() {
IpGroup a = new IpGroup();
a.setId(MocksFactory.nextId());
a.setDescription("A's description");
a.setDisplayName("A");
a.setPersistedGroupAlias("&ip/a");
a.add( IpAddressRange.make(IpAddress.valueOf("0.0.0.0"), IpAddress.valueOf("1.1.1.1")));
assertFalse( a.equals("banana") );
assertFalse( a.equals( null ) );
assertTrue( a.equals( a) );
IpGroup aa = new IpGroup();
aa.setId(a.getId());
aa.setDescription("A's description");
aa.setDisplayName("A");
aa.setPersistedGroupAlias("&ip/a");
aa.add( IpAddressRange.make(IpAddress.valueOf("0.0.0.0"), IpAddress.valueOf("1.1.1.1")));
assertTrue( a.equals(aa) );
aa.add( IpAddressRange.make(IpAddress.valueOf("9.0.0.0"), IpAddress.valueOf("9.1.1.1")));
assertFalse( a.equals(aa) );
}
}