package core.aws.plan.ec2; import com.amazonaws.services.ec2.model.IpPermission; import com.amazonaws.services.ec2.model.UserIdGroupPair; import core.aws.resource.ec2.SecurityGroup; import core.aws.task.ec2.DeleteSGRuleTask; import core.aws.task.ec2.DeleteSGTask; import core.aws.workflow.Tasks; import org.junit.Assert; import org.junit.Test; /** * @author neo */ public class SGTaskPlannerTest { @Test public void linkDeleteSGRuleTask() { Tasks tasks = new Tasks(); SecurityGroup adminSG = new SecurityGroup("admin"); adminSG.remoteSecurityGroup = new com.amazonaws.services.ec2.model.SecurityGroup().withGroupId("admin"); SecurityGroup webSG = new SecurityGroup("web"); webSG.remoteSecurityGroup = new com.amazonaws.services.ec2.model.SecurityGroup().withGroupId("web") .withIpPermissions(new IpPermission().withUserIdGroupPairs(new UserIdGroupPair().withGroupId("admin"))); DeleteSGTask deleteAdminTask = tasks.add(new DeleteSGTask(adminSG)); DeleteSGTask deleteWebTask = tasks.add(new DeleteSGTask(webSG)); DeleteSGRuleTask deleteWebRuleTask = tasks.add(new DeleteSGRuleTask(webSG, webSG.remoteSecurityGroup.getIpPermissions())); deleteWebTask.dependsOn(deleteWebTask); new SGTaskPlanner(tasks).plan(); Assert.assertTrue(deleteAdminTask.dependencies.contains(deleteWebRuleTask)); } }