blob: 13b7c6c734bb7a80a116b0967da8a5ff67335c01 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.camel.component.aws.iam;
import com.amazonaws.services.identitymanagement.model.AddUserToGroupResult;
import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;
import com.amazonaws.services.identitymanagement.model.CreateGroupResult;
import com.amazonaws.services.identitymanagement.model.CreateUserResult;
import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;
import com.amazonaws.services.identitymanagement.model.DeleteGroupResult;
import com.amazonaws.services.identitymanagement.model.DeleteUserResult;
import com.amazonaws.services.identitymanagement.model.GetUserResult;
import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;
import com.amazonaws.services.identitymanagement.model.ListGroupsResult;
import com.amazonaws.services.identitymanagement.model.ListUsersResult;
import com.amazonaws.services.identitymanagement.model.RemoveUserFromGroupResult;
import com.amazonaws.services.identitymanagement.model.StatusType;
import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;
import org.apache.camel.EndpointInject;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.spring.CamelSpringTestSupport;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IAMProducerSpringTest extends CamelSpringTestSupport {
@EndpointInject("mock:result")
private MockEndpoint mock;
@Test
public void iamListAccessKeysTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:listKeys", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listAccessKeys);
}
});
assertMockEndpointsSatisfied();
ListAccessKeysResult resultGet = (ListAccessKeysResult)exchange.getIn().getBody();
assertEquals(1, resultGet.getAccessKeyMetadata().size());
assertEquals("1", resultGet.getAccessKeyMetadata().get(0).getAccessKeyId());
}
@Test
public void iamCreateUserTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:createUser", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createUser);
exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
}
});
assertMockEndpointsSatisfied();
CreateUserResult resultGet = (CreateUserResult)exchange.getIn().getBody();
assertEquals("test", resultGet.getUser().getUserName());
}
@Test
public void iamDeleteUserTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:deleteUser", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteUser);
exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
}
});
assertMockEndpointsSatisfied();
DeleteUserResult resultGet = (DeleteUserResult)exchange.getIn().getBody();
assertNotNull(resultGet);
}
@Test
public void iamListUsersTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:listUsers", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listUsers);
}
});
assertMockEndpointsSatisfied();
ListUsersResult resultGet = (ListUsersResult)exchange.getIn().getBody();
assertEquals(1, resultGet.getUsers().size());
assertEquals("test", resultGet.getUsers().get(0).getUserName());
}
@Test
public void iamCreateAccessKeyTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:createAccessKey", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createAccessKey);
exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
}
});
assertMockEndpointsSatisfied();
CreateAccessKeyResult resultGet = (CreateAccessKeyResult) exchange.getIn().getBody();
assertEquals("test", resultGet.getAccessKey().getAccessKeyId());
assertEquals("testSecret", resultGet.getAccessKey().getSecretAccessKey());
}
@Test
public void iamDeleteAccessKeyTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:deleteAccessKey", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteAccessKey);
exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_ID, "1");
}
});
assertMockEndpointsSatisfied();
DeleteAccessKeyResult resultGet = (DeleteAccessKeyResult)exchange.getIn().getBody();
assertNotNull(resultGet);
}
@Test
public void iamGetUserTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:getUser", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.getUser);
exchange.getIn().setHeader(IAMConstants.USERNAME, "test");
}
});
assertMockEndpointsSatisfied();
GetUserResult resultGet = (GetUserResult)exchange.getIn().getBody();
assertEquals("test", resultGet.getUser().getUserName());
}
@Test
public void iamUpdateAccessKeyTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:updateAccessKey", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.updateAccessKey);
exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_ID, "1");
exchange.getIn().setHeader(IAMConstants.ACCESS_KEY_STATUS, StatusType.Inactive.toString());
}
});
assertMockEndpointsSatisfied();
UpdateAccessKeyResult resultGet = (UpdateAccessKeyResult)exchange.getIn().getBody();
assertNotNull(resultGet);
}
@Test
public void iamCreateGroupTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:createGroup", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.createGroup);
exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
exchange.getIn().setHeader(IAMConstants.GROUP_PATH, "/test");
}
});
assertMockEndpointsSatisfied();
CreateGroupResult resultGet = (CreateGroupResult)exchange.getIn().getBody();
assertNotNull(resultGet);
assertEquals("Test", resultGet.getGroup().getGroupName());
assertEquals("/test", resultGet.getGroup().getPath());
}
public void iamDeleteGroupTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:createGroup", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.deleteGroup);
exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
}
});
assertMockEndpointsSatisfied();
DeleteGroupResult resultGet = (DeleteGroupResult)exchange.getIn().getBody();
assertNotNull(resultGet);
}
public void iamListGroupsTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:listGroups", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.listGroups);
}
});
assertMockEndpointsSatisfied();
ListGroupsResult resultGet = (ListGroupsResult)exchange.getIn().getBody();
assertNotNull(resultGet);
assertEquals(1, resultGet.getGroups().size());
assertEquals("Test", resultGet.getGroups().get(0).getGroupName());
}
public void iamAddUserToGroupTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:addUserToGroup", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.addUserToGroup);
exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
exchange.getIn().setHeader(IAMConstants.USERNAME, "Test");
}
});
assertMockEndpointsSatisfied();
AddUserToGroupResult resultGet = (AddUserToGroupResult)exchange.getIn().getBody();
assertNotNull(resultGet);
}
public void iamRemoveUserFromGroupTest() throws Exception {
mock.expectedMessageCount(1);
Exchange exchange = template.request("direct:removeUserFromGroup", new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader(IAMConstants.OPERATION, IAMOperations.removeUserFromGroup);
exchange.getIn().setHeader(IAMConstants.GROUP_NAME, "Test");
exchange.getIn().setHeader(IAMConstants.USERNAME, "Test");
}
});
assertMockEndpointsSatisfied();
RemoveUserFromGroupResult resultGet = (RemoveUserFromGroupResult)exchange.getIn().getBody();
assertNotNull(resultGet);
}
@Override
protected ClassPathXmlApplicationContext createApplicationContext() {
return new ClassPathXmlApplicationContext("org/apache/camel/component/aws/iam/IAMComponentSpringTest-context.xml");
}
}