public void testRevokeSecurityGroupIpPermissions()
      throws SecurityException, NoSuchMethodException, IOException {
    Invokable<?, ?> method =
        method(
            AWSSecurityGroupApi.class,
            "revokeSecurityGroupIngressInRegion",
            String.class,
            String.class,
            Iterable.class);
    GeneratedHttpRequest request =
        processor.createRequest(
            method,
            Lists.<Object>newArrayList(
                null,
                "group",
                ImmutableSet.<IpPermission>of(
                    IpPermissions.permit(IpProtocol.TCP).originatingFromCidrBlock("1.1.1.1/32"),
                    IpPermissions.permitICMP()
                        .type(8)
                        .andCode(0)
                        .originatingFromSecurityGroupId("groupId"))));

    assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1");
    assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n");
    assertPayloadEquals(
        request,
        "Action=RevokeSecurityGroupIngress&GroupId=group&IpPermissions.0.IpProtocol=tcp&IpPermissions.0.FromPort=1&IpPermissions.0.ToPort=65535&IpPermissions.0.IpRanges.0.CidrIp=1.1.1.1/32&IpPermissions.1.IpProtocol=icmp&IpPermissions.1.FromPort=8&IpPermissions.1.ToPort=0&IpPermissions.1.Groups.0.GroupId=groupId",
        "application/x-www-form-urlencoded",
        false);

    assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
    assertSaxResponseParserClassEquals(method, null);
    assertFallbackClassEquals(method, null);

    checkFilters(request);
  }