You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2020/09/30 19:20:59 UTC
[archiva-redback-core] 01/02: Adding email test service for API v2
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 <ma...@apache.org>
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( "bilbo@lordoftherings.org", 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", "aragorn@lordoftherings.org" );
@@ -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( "aragorn@lordoftherings.org", 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" )