/**
* Copyright 2010 the original author or authors.
*
* 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 datameer.awstasks.aws.ec2;
import static org.fest.assertions.Assertions.*;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import awstasks.com.amazonaws.services.ec2.model.IpPermission;
import awstasks.com.amazonaws.services.ec2.model.UserIdGroupPair;
public class GroupPermissionTest {
@Test
public void testMatches_ips() {
GroupPermission groupPermission = new GroupPermission("tcp", 1433, 1433, "0.0.0.0/0");
IpPermission ipPermission = new IpPermission();
ipPermission.setIpProtocol("tcp");
ipPermission.setToPort(65535);
ipPermission.setFromPort(0);
Collection<String> ips = new ArrayList<String>();
ips.add("127.0.0.1");
ipPermission.setIpRanges(ips);
assertFalse(groupPermission.matches(ipPermission));
ips.clear();
ips.add("0.0.0.0/0");
ipPermission.setIpRanges(ips);
assertTrue(groupPermission.matches(ipPermission));
}
@Test
public void testMatches_groupWithSamePort() {
GroupPermission groupPermission = new GroupPermission("tcp", 1433, 1433, "0.0.0.0/0");
IpPermission ipPermission = new IpPermission();
ipPermission.setIpProtocol("tcp");
ipPermission.setToPort(65535);
ipPermission.setFromPort(0);
Collection<UserIdGroupPair> ips = new ArrayList<UserIdGroupPair>();
ips.add(new UserIdGroupPair().withGroupId("0.0.0.0/0").withGroupName("0.0.0.0/0").withUserId("0.0.0.0/0"));
ipPermission.setUserIdGroupPairs(ips);
assertThat(groupPermission.matches(ipPermission)).isTrue();
}
@Test
public void testMatches_SecurityGroup() throws Exception {
GroupPermission groupPermission = new GroupPermission("tcp", 1433, 1433, "securityGroup");
IpPermission ipPermission = new IpPermission().withIpProtocol("tcp").withFromPort(1433).withToPort(1433);
ipPermission.setUserIdGroupPairs(Arrays.asList(new UserIdGroupPair().withGroupName("securityGroup")));
assertThat(groupPermission.matches(ipPermission)).isTrue();
assertThat(new GroupPermission("tcp", 1433, 1433, "securityGroup2").matches(ipPermission)).isFalse();
}
@Test
public void testIsIpDefinition() throws Exception {
assertThat(GroupPermission.isIpDefinition("127.0.0.1")).isTrue();
assertThat(GroupPermission.isIpDefinition("0.0.0.0/0")).isTrue();
assertThat(GroupPermission.isIpDefinition("security-group")).isFalse();
}
}