This is an automated email from the ASF dual-hosted git repository. martin_s pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/archiva-redback-core.git
commit f1f69feaa732ab20bd6d2a9fa36547f7f63583aa Author: Martin Stockhammer <[email protected]> AuthorDate: Wed Sep 30 20:09:27 2020 +0200 Adding email test service for API v2 --- .../rest/services/mock/DefaultServicesAssert.java | 1 + .../redback/rest/services/mock/ServicesAssert.java | 2 ++ .../services/v2/AbstractNativeRestServices.java | 14 ++++++-- .../rest/services/v2/NativeUserServiceTest.java | 37 ++++++++++++++++++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/DefaultServicesAssert.java b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/DefaultServicesAssert.java index 625611d..c57ee81 100644 --- a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/DefaultServicesAssert.java +++ b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/DefaultServicesAssert.java @@ -47,6 +47,7 @@ public class DefaultServicesAssert } public void clearEmailMessages() { + mockJavaMailSender.getSendedEmails( ).clear( ); } diff --git a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/ServicesAssert.java b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/ServicesAssert.java index 80b5f5c..b68c2dd 100644 --- a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/ServicesAssert.java +++ b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/mock/ServicesAssert.java @@ -31,11 +31,13 @@ import java.util.List; @Path( "DefaultServicesAssert" ) public interface ServicesAssert { + @Path("/getEmailMessageSended") @GET @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } ) List<EmailMessage> getEmailMessageSended() throws Exception; + @Path("/clearEmailMessages") @POST void clearEmailMessages(); } diff --git a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/AbstractNativeRestServices.java b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/AbstractNativeRestServices.java index da80867..442224a 100644 --- a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/AbstractNativeRestServices.java +++ b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/AbstractNativeRestServices.java @@ -332,11 +332,16 @@ public abstract class AbstractNativeRestServices RestAssured.basePath = basePath; } - protected RequestSpecBuilder getRequestSpecBuilder( ) + protected RequestSpecBuilder getRequestSpecBuilder( ) { + return getRequestSpecBuilder( null ); + } + + protected RequestSpecBuilder getRequestSpecBuilder( String basePath ) { + String myBasePath = basePath == null ? getBasePath( ) : basePath; return new RequestSpecBuilder( ).setBaseUri( baseURI ) .setPort( port ) - .setBasePath( getBasePath( ) ) + .setBasePath( myBasePath ) .addHeader( "Origin", RestAssured.baseURI + ":" + RestAssured.port ); } @@ -355,6 +360,11 @@ public abstract class AbstractNativeRestServices return getRequestSpecBuilder( ).addHeader( "Authorization", "Bearer " + bearerToken ).build( ); } + protected RequestSpecification getRequestSpec( String bearerToken, String path) + { + return getRequestSpecBuilder( path ).addHeader( "Authorization", "Bearer " + bearerToken ).build( ); + } + protected void shutdownNative( ) throws Exception { if (startServer) diff --git a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java index 1fdf530..da3c666 100644 --- a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java +++ b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java @@ -20,6 +20,7 @@ package org.apache.archiva.redback.rest.services.v2; import io.restassured.response.Response; import org.apache.archiva.redback.rest.api.model.v2.User; +import org.apache.archiva.redback.rest.services.mock.EmailMessage; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.MethodOrderer; @@ -950,6 +951,12 @@ public class NativeUserServiceTest extends AbstractNativeRestServices void register( ) { String adminToken = getAdminToken( ); + + given( ).spec( getRequestSpec( adminToken, "/api/testsService" ) ) + .when( ) + .post( "DefaultServicesAssert/clearEmailMessages" ) + .then( ).statusCode( 204 ); + Map<String, Object> requestMap = new HashMap<>( ); Map<String, Object> userMap = new HashMap<>( ); @@ -970,6 +977,18 @@ public class NativeUserServiceTest extends AbstractNativeRestServices .when( ) .post( "bilbo/register" ) .then( ).statusCode( 200 ); + + Response response = given( ).spec( getRequestSpec( adminToken, "/api/testsService" ) ).contentType( JSON ) + .get( "DefaultServicesAssert/getEmailMessageSended" ).then( ).statusCode( 200 ) + .extract( ).response( ); + List<EmailMessage> emailMessages = response.jsonPath( ).getList( "", EmailMessage.class ); + assertEquals( 1, emailMessages.size( ) ); + assertEquals( "[email protected]", emailMessages.get( 0 ).getTos( ).get( 0 ) ); + + assertEquals( "Welcome", emailMessages.get( 0 ).getSubject( ) ); + assertTrue( + emailMessages.get( 0 ).getText( ).contains( "Use the following URL to validate your account." ) ); + } finally { @@ -1007,6 +1026,12 @@ public class NativeUserServiceTest extends AbstractNativeRestServices void askForPasswordReset( ) { String adminToken = getAdminToken( ); + + given( ).spec( getRequestSpec( adminToken, "/api/testsService" ) ) + .when( ) + .post( "DefaultServicesAssert/clearEmailMessages" ) + .then( ).statusCode( 204 ); + Map<String, Object> jsonAsMap = new HashMap<>( ); jsonAsMap.put( "user_id", "aragorn" ); jsonAsMap.put( "email", "[email protected]" ); @@ -1026,6 +1051,18 @@ public class NativeUserServiceTest extends AbstractNativeRestServices .post( "aragorn/password/reset" ) .then( ).statusCode( 200 ); + Response response = given( ).spec( getRequestSpec( adminToken, "/api/testsService" ) ).contentType( JSON ) + .get( "DefaultServicesAssert/getEmailMessageSended" ).then( ).statusCode( 200 ) + .extract( ).response( ); + List<EmailMessage> emailMessages = response.jsonPath( ).getList( "", EmailMessage.class ); + assertEquals( 1, emailMessages.size( ) ); + assertEquals( "[email protected]", emailMessages.get( 0 ).getTos( ).get( 0 ) ); + String messageContent = emailMessages.get( 0 ).getText( ); + + assertTrue( messageContent.contains( "Password Reset" )); + assertTrue(messageContent.contains( "Username: aragorn" )); + + given( ).spec( getRequestSpec( null ) ).contentType( JSON ) .when( ) .post( "xxyy/password/reset" )
