[USERGRID-340] Updating RegistrationIT
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/8eda8bed Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/8eda8bed Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/8eda8bed Branch: refs/heads/two-dot-o Commit: 8eda8bedc8dd23a7a1d39729ae3379933afa5f82 Parents: 2d1c8b8 Author: ryan bridges <[email protected]> Authored: Thu Apr 2 02:29:50 2015 -0400 Committer: ryan bridges <[email protected]> Committed: Fri Apr 17 10:05:17 2015 -0400 ---------------------------------------------------------------------- .../rest/management/RegistrationIT.java | 440 +++++++++---------- 1 file changed, 204 insertions(+), 236 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/8eda8bed/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java index f949da3..1e94a2d 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java @@ -17,212 +17,193 @@ package org.apache.usergrid.rest.management; -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.UUID; - -import javax.mail.Folder; -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.Session; -import javax.mail.Store; -import javax.mail.internet.MimeMultipart; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; - -import com.eaio.uuid.UUIDGen; -import com.fasterxml.jackson.databind.JsonNode; - -import org.junit.Rule; +import com.sun.jersey.api.client.UniformInterfaceException; +import com.sun.jersey.api.representation.Form; +import org.apache.commons.lang.StringUtils; +import org.apache.usergrid.management.AccountCreationProps; +import org.apache.usergrid.persistence.model.util.UUIDGenerator; +import org.apache.usergrid.rest.test.resource2point0.AbstractRestIT; +import org.apache.usergrid.rest.test.resource2point0.model.*; import org.junit.Test; import org.jvnet.mock_javamail.Mailbox; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.usergrid.management.UserInfo; -import org.apache.usergrid.persistence.model.util.UUIDGenerator; -import org.apache.usergrid.rest.AbstractRestIT; -import org.apache.usergrid.rest.ITSetup; -import org.apache.usergrid.rest.TestContextSetup; -import org.apache.usergrid.rest.test.security.TestAppUser; -import org.apache.usergrid.rest.test.security.TestUser; -import org.apache.commons.lang.StringUtils; +import javax.mail.*; +import javax.mail.internet.MimeMultipart; +import javax.ws.rs.core.MediaType; +import java.io.IOException; +import java.util.*; -import com.sun.jersey.api.client.ClientResponse; -import com.sun.jersey.api.client.UniformInterfaceException; -import com.sun.jersey.core.util.MultivaluedMapImpl; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_RESETPW_URL; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_EMAIL; -import static org.apache.usergrid.utils.MapUtils.hashMap; +import static org.apache.usergrid.management.AccountCreationProps.*; +import static org.junit.Assert.*; public class RegistrationIT extends AbstractRestIT { - private static final Logger logger = LoggerFactory.getLogger( RegistrationIT.class ); - - private static final ITSetup setup = ITSetup.getInstance(); - - @Rule - public TestContextSetup context = new TestContextSetup( this ); - - - @Test - public void postCreateOrgAndAdmin() throws Exception { - - Map<String, String> originalProperties = getRemoteTestProperties(); + private static final Logger logger = LoggerFactory.getLogger(RegistrationIT.class); - try { - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); - setTestProperty( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); + public Map<String, Object> getRemoteTestProperties() { + return clientSetup.getRestClient().testPropertiesResource().get().getProperties(); + } -// JsonNode node = postCreateOrgAndAdmin( "test-org-1", "test-user-1", "Test User", -// "[email protected]", "testpassword" ); + /** + * Sets a management service property locally and remotely. + */ + public void setTestProperty(String key, Object value) { + // set the value remotely (in the Usergrid instance running in Tomcat classloader) + Entity props = new Entity(); + props.put(key, value); + clientSetup.getRestClient().testPropertiesResource().post(props); + } - final String username = "registrationUser"+UUIDGenerator.newTimeUUID(); - final String email = username+"@usergrid.com" ; - final String password = "password"; + public void setTestProperties(Map<String, Object> props) { + Entity properties = new Entity(); + // set the values locally (in the Usergrid instance here in the JUnit classloader + for (String key : props.keySet()) { + properties.put(key, props.get(key)); - final TestUser user1 = new TestAppUser(username , password, email); + } - context.withOrg( "org" + UUIDGenerator.newTimeUUID() ).withApp( "app" + UUIDGenerator.newTimeUUID() ).withUser( user1 ).createNewOrgAndUser(); - context.createAppForOrg(); + // set the values remotely (in the Usergrid instance running in Tomcat classloader) + clientSetup.getRestClient().testPropertiesResource().post(properties); + } - final UUID owner_uuid = context.getActiveUser().getUuid(); + public String getTokenFromMessage(Message msg) throws IOException, MessagingException { + String body = ((MimeMultipart) msg.getContent()).getBodyPart(0).getContent().toString(); + // TODO better token extraction + // this is going to get the wrong string if the first part is not + // text/plain and the url isn't the last character in the email + return StringUtils.substringAfterLast(body, "token="); + } -// refreshIndex("test-organization", "test-app"); -// -// UUID owner_uuid = -// UUID.fromString( node.findPath( "data" ).findPath( "owner" ).findPath( "uuid" ).textValue() ); + public User postAddAdminToOrg(String organizationName, String email, String password, String token) throws IOException { - List<Message> inbox = org.jvnet.mock_javamail.Mailbox.get( "[email protected]" ); + User user = this + .management() + .orgs() + .organization(organizationName) + .users() + .getResource(false) + .queryParam("access_token", token) + .post(User.class, new User().chainPut("email", email).chainPut("password", password)); - assertFalse( inbox.isEmpty() ); + assertNotNull(user); + return user; + } - Message account_confirmation_message = inbox.get( 0 ); - assertEquals( "User Account Confirmation: " + email, - account_confirmation_message.getSubject() ); + private Message[] getMessages(String host, String user, String password) throws MessagingException, IOException { - String token = getTokenFromMessage( account_confirmation_message ); - logger.info( token ); + Session session = Session.getDefaultInstance(new Properties()); + Store store = session.getStore("imap"); + store.connect(host, user, password); - setup.getMgmtSvc().disableAdminUser( owner_uuid ); + Folder folder = store.getFolder("inbox"); + folder.open(Folder.READ_ONLY); + Message[] msgs = folder.getMessages(); - refreshIndex(context.getOrgName(), context.getAppName()); + for (Message m : msgs) { + logger.info("Subject: " + m.getSubject()); + logger.info( + "Body content 0 " + ((MimeMultipart) m.getContent()).getBodyPart(0).getContent()); + logger.info( + "Body content 1 " + ((MimeMultipart) m.getContent()).getBodyPart(1).getContent()); + } + return msgs; + } - try { - resource().path( "/management/token" ).queryParam( "grant_type", "password" ) - .queryParam( "username", username ).queryParam( "password", password ) - .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE ) - .get( String.class ); - fail( "request for disabled user should fail" ); - } - catch ( UniformInterfaceException uie ) { - ClientResponse.Status status = uie.getResponse().getClientResponseStatus(); - JsonNode body = mapper.readTree( uie.getResponse().getEntity( String.class )); - assertEquals( "user disabled", body.findPath( "error_description" ).textValue() ); - } + @Test + public void postCreateOrgAndAdmin() throws Exception { - setup.getMgmtSvc().deactivateUser( setup.getEmf().getManagementAppId(), owner_uuid ); - try { - resource().path( "/management/token" ).queryParam( "grant_type", "password" ) - .queryParam( "username", username ).queryParam( "password", password) - .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE ) - .get( String.class ); - fail( "request for deactivated user should fail" ); - } - catch ( UniformInterfaceException uie ) { - ClientResponse.Status status = uie.getResponse().getClientResponseStatus(); - JsonNode body = mapper.readTree( uie.getResponse().getEntity( String.class )); - assertEquals( "user not activated", body.findPath( "error_description" ).textValue() ); - } + Map<String, Object> originalProperties = getRemoteTestProperties(); - // assertEquals(ActivationState.ACTIVATED, - // svcSetup.getMgmtSvc().handleConfirmationTokenForAdminUser( - // owner_uuid, token)); + try { + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); + setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); + setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); - // need to enable JSP usage in the test version of Jetty to make this test run - // String response = resource() - // .path("/management/users/" + owner_uuid + "/confirm").get(String.class); - // logger.info(response); - // Message account_activation_message = inbox.get(1); - // assertEquals("User Account Activated", account_activation_message.getSubject()); + final String username = "registrationUser" + UUIDGenerator.newTimeUUID(); + final String email = username + "@usergrid.com"; + final String password = "password"; - } - finally { - setTestProperties( originalProperties ); - } - } + Organization organization = this + .management() + .orgs() + .post(new Organization("org" + UUIDGenerator.newTimeUUID(), username, email, username, password, new HashMap<String, Object>()), this.getAdminToken()); + Application application = new Application("app" + UUIDGenerator.newTimeUUID()); + this.management().orgs().organization(organization.getName()).app().post(application); + List<Message> inbox = org.jvnet.mock_javamail.Mailbox.get("[email protected]"); - public String getTokenFromMessage( Message msg ) throws IOException, MessagingException { - String body = ( ( MimeMultipart ) msg.getContent() ).getBodyPart( 0 ).getContent().toString(); - String token = StringUtils.substringAfterLast( body, "token=" ); - // TODO better token extraction - // this is going to get the wrong string if the first part is not - // text/plain and the url isn't the last character in the email - return token; - } + assertFalse(inbox.isEmpty()); + Message account_confirmation_message = inbox.get(0); + assertEquals("User Account Confirmation: " + email, + account_confirmation_message.getSubject()); + String token = getTokenFromMessage(account_confirmation_message); + logger.info(token); - @SuppressWarnings({ "unchecked", "rawtypes" }) - public JsonNode postAddAdminToOrg( String organizationName, String email, String password, String token ) throws IOException { - JsonNode node = null; + setTestProperty(AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_ALLOWED, "false"); - MultivaluedMap formData = new MultivaluedMapImpl(); - formData.add( "email", email ); - formData.add( "password", password ); + refreshIndex(); - node = mapper.readTree( resource().path( "/management/organizations/" + organizationName + "/users" ) - .queryParam( "access_token", token ).accept( MediaType.APPLICATION_JSON ) - .type( MediaType.APPLICATION_FORM_URLENCODED ).post( String.class, formData )); + try { + this.management().orgs().organization(organization.getName()).users().user(username) + .getResource(false) + .queryParam("username", username) + .queryParam("password", password) + .get(String.class); + fail("request for disabled user should fail"); + } catch (UniformInterfaceException uie) { + assertEquals("user disabled", uie.getMessage()); + } + this.management() + .orgs() + .organization(organization.getName()) + .users() + .user(username) + .put(new Entity().chainPut("activated", false).chainPut("deactivated", System.currentTimeMillis())); + try { + management() + .token() + .get(new QueryParameters().addParam("grant_type", "password").addParam("username", username).addParam("password", password)); + fail("request for deactivated user should fail"); + } catch (UniformInterfaceException uie) { + assertEquals("user not activated", uie.getMessage()); + } - assertNotNull( node ); - logNode( node ); - return node; + } finally { + setTestProperties(originalProperties); + } } @Test public void putAddToOrganizationFail() throws Exception { - Map<String, String> originalProperties = getRemoteTestProperties(); + Map<String, Object> originalProperties = getRemoteTestProperties(); try { - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); - setTestProperty( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); - - String t = adminToken(); - MultivaluedMap formData = new MultivaluedMapImpl(); - formData.add( "foo", "bar" ); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); + setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); + setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); + + String t = this.getAdminToken().getAccessToken(); + Form form = new Form(); + form.add("foo", "bar"); try { - resource().path( "/management/organizations/test-organization/users/[email protected]" ) - .queryParam( "access_token", t ).accept( MediaType.APPLICATION_JSON ) - .type( MediaType.APPLICATION_FORM_URLENCODED ).put( String.class, formData ); + this.org().getResource(false).path("/users/[email protected]") + .queryParam("access_token", t).accept(MediaType.APPLICATION_JSON) + .type(MediaType.APPLICATION_FORM_URLENCODED).put(String.class, form); + } catch (UniformInterfaceException e) { + assertEquals("Should receive a 400 Not Found", 400, e.getResponse().getStatus()); } - catch ( UniformInterfaceException e ) { - assertEquals( "Should receive a 400 Not Found", 400, e.getResponse().getStatus() ); - } - } - finally { - setTestProperties( originalProperties ); + } finally { + setTestProperties(originalProperties); } } @@ -230,19 +211,18 @@ public class RegistrationIT extends AbstractRestIT { @Test public void postAddToOrganization() throws Exception { - Map<String, String> originalProperties = getRemoteTestProperties(); + Map<String, Object> originalProperties = getRemoteTestProperties(); try { - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); - setTestProperty( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); - - String t = adminToken(); - postAddAdminToOrg( "test-organization", "[email protected]", "password", t ); - } - finally { - setTestProperties( originalProperties ); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); + setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); + setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); + + String t = this.getAdminToken().getAccessToken(); + postAddAdminToOrg("test-organization", "[email protected]", "password", t); + } finally { + setTestProperties(originalProperties); } } @@ -250,48 +230,57 @@ public class RegistrationIT extends AbstractRestIT { @Test public void addNewAdminUserWithNoPwdToOrganization() throws Exception { - Map<String, String> originalProperties = getRemoteTestProperties(); + Map<String, Object> originalProperties = getRemoteTestProperties(); try { Mailbox.clearAll(); - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); - setTestProperty( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); + setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); + setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); // this should send resetpwd link in email to newly added org admin user(that did not exist ///in usergrid) and "User Invited To Organization" email - String adminToken = adminToken(); - JsonNode node = postAddAdminToOrg( "test-organization", "[email protected]", "", adminToken ); - String uuid = node.get( "data" ).get( "user" ).get( "uuid" ).textValue(); - UUID userId = UUID.fromString( uuid ); + String adminToken = getAdminToken().getAccessToken(); + Entity node = postAddAdminToOrg("test-organization", "[email protected]", "", adminToken); + UUID userId = (UUID) node.getMap("data").get("user").get("uuid"); - refreshIndex("test-organization", "test-app"); + refreshIndex(); String subject = "Password Reset"; - String reset_url = String.format( setup.getProps().getProperty( PROPERTIES_ADMIN_RESETPW_URL ), uuid ); + Map<String, Object> testProperties = this.getRemoteTestProperties(); + String reset_url = String.format((String) testProperties.get(PROPERTIES_ADMIN_RESETPW_URL), userId.toString()); String invited = "User Invited To Organization"; - Message[] msgs = getMessages( "mockserver.com", "test-admin-nopwd", "password" ); + Message[] msgs = getMessages("mockserver.com", "test-admin-nopwd", "password"); // 1 Invite and 1 resetpwd - assertTrue( msgs.length == 2 ); + assertTrue(msgs.length == 2); //email subject - assertEquals( subject, msgs[0].getSubject() ); - assertEquals( invited, msgs[1].getSubject() ); + assertEquals(subject, msgs[0].getSubject()); + assertEquals(invited, msgs[1].getSubject()); // reseturl - String mailContent = ( String ) ( ( MimeMultipart ) msgs[0].getContent() ).getBodyPart( 1 ).getContent(); - logger.info( mailContent ); - assertTrue( StringUtils.contains( mailContent, reset_url ) ); + String mailContent = (String) ((MimeMultipart) msgs[0].getContent()).getBodyPart(1).getContent(); + logger.info(mailContent); + assertTrue(StringUtils.contains(mailContent, reset_url)); //token - String token = getTokenFromMessage( msgs[0] ); - assertTrue( setup.getMgmtSvc().checkPasswordResetTokenForAdminUser( userId, token ) ); - } - finally { - setTestProperties( originalProperties ); + String token = getTokenFromMessage(msgs[0]); + this + .management() + .orgs() + .organization("test-organization") + .users() + .getResource(false) + .queryParam("access_token", token) + .get(String.class); + fail("Should not be able to authenticate an admin with no admin access allowed"); + } catch (UniformInterfaceException uie) { + assertEquals(401, uie.getResponse().getStatus()); + } finally { + setTestProperties(originalProperties); } } @@ -299,75 +288,54 @@ public class RegistrationIT extends AbstractRestIT { @Test public void addExistingAdminUserToOrganization() throws Exception { - Map<String, String> originalProperties = getRemoteTestProperties(); + Map<String, Object> originalProperties = getRemoteTestProperties(); try { Mailbox.clearAll(); - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); - setTestProperty( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false" ); - setTestProperty( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); + setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); + setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); + setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); // svcSetup an admin user String adminUserName = "AdminUserFromOtherOrg"; String adminUserEmail = "[email protected]"; - UserInfo adminUser = setup.getMgmtSvc().createAdminUser( - adminUserEmail, adminUserEmail, adminUserEmail, "password1", true, false ); + User adminUser = (User) management().users().post(new User(adminUserEmail, adminUserEmail, adminUserEmail, "password1")); - refreshIndex("test-organization", "test-app"); + refreshIndex(); - assertNotNull( adminUser ); - Message[] msgs = getMessages( "otherorg.com", adminUserName, "password1" ); - assertEquals( 1, msgs.length ); + assertNotNull(adminUser); + Message[] msgs = getMessages("otherorg.com", adminUserName, "password1"); + assertEquals(1, msgs.length); // add existing admin user to org // this should NOT send resetpwd link in email to newly added org admin user(that // already exists in usergrid) only "User Invited To Organization" email - String adminToken = adminToken(); - JsonNode node = postAddAdminToOrg( "test-organization", - adminUserEmail, "password1", adminToken ); - String uuid = node.get( "data" ).get( "user" ).get( "uuid" ).textValue(); - UUID userId = UUID.fromString( uuid ); + String adminToken = getAdminToken().getAccessToken(); + User node = postAddAdminToOrg("test-organization", + adminUserEmail, "password1", adminToken); + String uuid = node.getMap("data").get("user").get("uuid").toString(); + UUID userId = UUID.fromString(uuid); - assertEquals( adminUser.getUuid(), userId ); + assertEquals(adminUser.getUuid(), userId); - msgs = getMessages( "otherorg.com", adminUserName, "password1" ); + msgs = getMessages("otherorg.com", adminUserName, "password1"); // only 1 invited msg - assertEquals( 2, msgs.length ); + assertEquals(2, msgs.length); // check email subject String resetpwd = "Password Reset"; - assertNotSame( resetpwd, msgs[1].getSubject() ); + assertNotSame(resetpwd, msgs[1].getSubject()); String invited = "User Invited To Organization"; - assertEquals( invited, msgs[1].getSubject() ); - } - finally { - setTestProperties( originalProperties ); + assertEquals(invited, msgs[1].getSubject()); + } finally { + setTestProperties(originalProperties); } } - private Message[] getMessages( String host, String user, String password ) throws MessagingException, IOException { - - Session session = Session.getDefaultInstance( new Properties() ); - Store store = session.getStore( "imap" ); - store.connect( host, user, password ); - - Folder folder = store.getFolder( "inbox" ); - folder.open( Folder.READ_ONLY ); - Message[] msgs = folder.getMessages(); - - for ( Message m : msgs ) { - logger.info( "Subject: " + m.getSubject() ); - logger.info( - "Body content 0 " + ( ( MimeMultipart ) m.getContent() ).getBodyPart( 0 ).getContent()); - logger.info( - "Body content 1 " + ( ( MimeMultipart ) m.getContent() ).getBodyPart( 1 ).getContent()); - } - return msgs; - } }
