Tests for class MR_ClientResource
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / resources / MR_ClientResource.java
index a621338..80ee0a6 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -24,8 +24,14 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
-
-import java.util.List;
+import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
+import org.onap.dmaap.dbcapi.model.ApiError;
+import org.onap.dmaap.dbcapi.model.MR_Client;
+import org.onap.dmaap.dbcapi.model.MR_Cluster;
+import org.onap.dmaap.dbcapi.model.Topic;
+import org.onap.dmaap.dbcapi.service.MR_ClientService;
+import org.onap.dmaap.dbcapi.service.MR_ClusterService;
+import org.onap.dmaap.dbcapi.service.TopicService;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -39,16 +45,9 @@ import javax.ws.rs.core.GenericEntity;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
+import java.util.List;
 
-import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
-import org.onap.dmaap.dbcapi.model.ApiError;
-import org.onap.dmaap.dbcapi.model.MR_Client;
-import org.onap.dmaap.dbcapi.model.MR_Cluster;
-import org.onap.dmaap.dbcapi.model.Topic;
-import org.onap.dmaap.dbcapi.service.ApiService;
-import org.onap.dmaap.dbcapi.service.MR_ClientService;
-import org.onap.dmaap.dbcapi.service.MR_ClusterService;
-import org.onap.dmaap.dbcapi.service.TopicService;
+import static javax.ws.rs.core.Response.Status.NO_CONTENT;
 
 
 @Path("/mr_clients")
@@ -59,6 +58,8 @@ import org.onap.dmaap.dbcapi.service.TopicService;
 public class MR_ClientResource extends BaseLoggingClass {
 
        private MR_ClientService mr_clientService = new MR_ClientService();
+       private ResponseBuilder responseBuilder = new ResponseBuilder();
+       private RequiredChecker checker = new RequiredChecker();
                
        @GET
        @ApiOperation( value = "return MR_Client details", 
@@ -69,13 +70,11 @@ public class MR_ClientResource extends BaseLoggingClass {
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
        public Response getMr_Clients() {
-               ApiService resp = new ApiService();
-
                List<MR_Client> clients = mr_clientService.getAllMr_Clients();
 
                GenericEntity<List<MR_Client>> list = new GenericEntity<List<MR_Client>>(clients) {
         };
-        return resp.success(list);             
+        return responseBuilder.success(list);
        }
                
        @POST
@@ -89,59 +88,49 @@ public class MR_ClientResource extends BaseLoggingClass {
            @ApiResponse( code = 200, message = "Success", response = MR_Client.class),
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
-       public Response addMr_Client( 
-                       MR_Client client
-                       ) {
-               ApiService resp = new ApiService();
+       public Response addMr_Client(MR_Client client) {
+               ApiError apiError = new ApiError();
 
                try {
-                       resp.required( "fqtn", client.getFqtn(), "");
-                       resp.required( "dcaeLocationName", client.getDcaeLocationName(), "");
+                       checker.required( "fqtn", client.getFqtn());
+                       checker.required( "dcaeLocationName", client.getDcaeLocationName());
                        String s = client.getClientRole();
                        if ( s == null ) {
                                s = client.getClientIdentity();
                        }
-                       resp.required( "clientRole or clientIdentity", s, "" );
-                       resp.required( "action", client.getAction(), "");
+                       checker.required( "clientRole or clientIdentity", s);
+                       checker.required( "action", client.getAction());
 
                } catch ( RequiredFieldException rfe ) {
-                       logger.debug( resp.toString() );
-                       return resp.error();    
+                       logger.debug( rfe.getApiError().toString() );
+                       return responseBuilder.error(rfe.getApiError());
                }
                MR_ClusterService clusters = new MR_ClusterService();
 
-               MR_Cluster cluster = clusters.getMr_Cluster(client.getDcaeLocationName(), resp.getErr());
+               MR_Cluster cluster = clusters.getMr_Cluster(client.getDcaeLocationName(), apiError);
                if ( cluster == null ) {
 
-                       resp.setCode(Status.BAD_REQUEST.getStatusCode());
-                       resp.setMessage( "MR_Cluster alias not found for dcaeLocation: " + client.getDcaeLocationName());
-                       resp.setFields("dcaeLocationName");
-                       logger.warn( resp.toString() );
-                       return resp.error();
-               }
-               String url = cluster.getFqdn();
-               if ( url == null || url.isEmpty() ) {
-
-                       resp.setCode(Status.BAD_REQUEST.getStatusCode());
-                       resp.setMessage("FQDN not set for dcaeLocation " + client.getDcaeLocationName() );
-                       resp.setFields("fqdn");
-                       logger.warn( resp.toString() );
-                       return resp.error();
+                       apiError.setCode(Status.BAD_REQUEST.getStatusCode());
+                       apiError.setMessage( "MR_Cluster alias not found for dcaeLocation: " + client.getDcaeLocationName());
+                       apiError.setFields("dcaeLocationName");
+                       logger.warn(apiError.toString());
+                       return responseBuilder.error(apiError);
                }
+
                TopicService topics = new TopicService();
 
-               Topic t = topics.getTopic(client.getFqtn(), resp.getErr() );
+               Topic t = topics.getTopic(client.getFqtn(), apiError);
                if ( t == null ) {
-                       return resp.error();            
+                       return responseBuilder.error(apiError);
                }
-               MR_Client nClient =  mr_clientService.addMr_Client(client, t, resp.getErr());
-               if ( resp.getErr().is2xx()) {
-                       t = topics.getTopic(client.getFqtn(),  resp.getErr());
-                       topics.checkForBridge(t, resp.getErr());
-                       return resp.success(nClient);
+               MR_Client nClient =  mr_clientService.addMr_Client(client, t, apiError);
+               if (apiError.is2xx()) {
+                       t = topics.getTopic(client.getFqtn(), apiError);
+                       topics.checkForBridge(t, apiError);
+                       return responseBuilder.success(nClient);
                }
                else {
-                       return resp.error();                    
+                       return responseBuilder.error(apiError);
                }
        }
                
@@ -154,30 +143,27 @@ public class MR_ClientResource extends BaseLoggingClass {
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
        @Path("/{clientId}")
-       public Response updateMr_Client( 
-                       @PathParam("clientId") String clientId, 
-                       MR_Client client
-                       ) {
-               ApiService resp = new ApiService();
+       public Response updateMr_Client(@PathParam("clientId") String clientId, MR_Client client) {
+               ApiError apiError = new ApiError();
 
                try {
-                       resp.required( "fqtn", client.getFqtn(), "");
-                       resp.required( "dcaeLocationName", client.getDcaeLocationName(), "");
-                       resp.required( "clientRole", client.getClientRole(), "" );
-                       resp.required( "action", client.getAction(), "");
+                       checker.required( "fqtn", client.getFqtn());
+                       checker.required( "dcaeLocationName", client.getDcaeLocationName());
+                       checker.required( "clientRole", client.getClientRole());
+                       checker.required( "action", client.getAction());
 
                } catch ( RequiredFieldException rfe ) {
-                       logger.debug( resp.toString() );
-                       return resp.error();            
+                       logger.debug( rfe.getApiError().toString() );
+                       return responseBuilder.error(rfe.getApiError());
                }
                client.setMrClientId(clientId);
-               MR_Client nClient = mr_clientService.updateMr_Client(client, resp.getErr() );
-               if ( resp.getErr().is2xx()) {
+               MR_Client nClient = mr_clientService.updateMr_Client(client, apiError);
+               if (apiError.is2xx()) {
                        return Response.ok(nClient)
                                .build();
                }
-               return Response.status(resp.getErr().getCode())
-                               .entity( resp.getErr() )
+               return Response.status(apiError.getCode())
+                               .entity(apiError)
                                .build();
        }
                
@@ -190,23 +176,15 @@ public class MR_ClientResource extends BaseLoggingClass {
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
        @Path("/{subId}")
-       public Response deleteMr_Client( 
-                       @PathParam("subId") String id
-                       ){
-               ApiService resp = new ApiService();
+       public Response deleteMr_Client(@PathParam("subId") String id){
+               ApiError apiError = new ApiError();
 
-               try {
-                       resp.required( "clientId", id, "");
-               } catch ( RequiredFieldException rfe ) {
-                       logger.debug( resp.toString() );
-                       return resp.error();    
-               }
-               mr_clientService.removeMr_Client(id, true, resp.getErr() );
-               if ( resp.getErr().is2xx()) {
-                       return resp.success(Status.NO_CONTENT.getStatusCode(), null);
+               mr_clientService.removeMr_Client(id, true, apiError);
+               if (apiError.is2xx()) {
+                       return responseBuilder.success(NO_CONTENT.getStatusCode(), null);
                }
                
-               return resp.error();
+               return responseBuilder.error(apiError);
        }
 
        @GET
@@ -218,21 +196,13 @@ public class MR_ClientResource extends BaseLoggingClass {
            @ApiResponse( code = 400, message = "Error", response = ApiError.class )
        })
        @Path("/{subId}")
-       public Response test( 
-                       @PathParam("subId") String id
-                       ) {
-               ApiService resp = new ApiService();
+       public Response getMr_Client(@PathParam("subId") String id) {
+               ApiError apiError = new ApiError();
 
-               try {
-                       resp.required( "clientId", id, "");
-               } catch ( RequiredFieldException rfe ) {
-                       logger.debug( resp.toString() );
-                       return resp.error();    
-               }
-               MR_Client nClient =  mr_clientService.getMr_Client( id, resp.getErr() );
-               if ( resp.getErr().is2xx()) {
-                       return resp.success(nClient);
+               MR_Client nClient =  mr_clientService.getMr_Client(id, apiError);
+               if (apiError.is2xx()) {
+                       return responseBuilder.success(nClient);
                }
-               return resp.error();    
+               return responseBuilder.error(apiError);
        }
 }