### Question:
ViewDataMigrationService extends BaseService { @PUT @Path("{originVersion}/{originInstanceName}") @ApiOperation(value = "Migrate view instance data", notes = "Migrates view instance persistence data from origin view instance specified in the path params.") @ApiResponses({ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION), @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_NOT_FOUND), @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED), @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED), @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR), @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = MSG_INVALID_ARGUMENTS), }) public Response migrateData( @ApiParam(value = "view name") @PathParam("viewName") String viewName, @ApiParam(value = "view version") @PathParam("version") String viewVersion, @ApiParam(value = "instance name") @PathParam("instanceName") String instanceName, @ApiParam(value = "origin version") @PathParam("originVersion") String originViewVersion, @ApiParam(value = "origin instance name") @PathParam("originInstanceName") String originInstanceName) throws ViewDataMigrationException { if (!viewRegistry.checkAdmin()) { throw new WebApplicationException(Response.Status.FORBIDDEN); } LOG.info("Data Migration to view instance " + viewName + "/" + viewVersion + "/" + instanceName + " from " + viewName + "/" + originViewVersion + "/" + originInstanceName); ViewInstanceEntity instanceDefinition = viewRegistry.getInstanceDefinition( viewName, viewVersion, instanceName); ViewInstanceEntity originInstanceDefinition = viewRegistry.getInstanceDefinition( viewName, originViewVersion, originInstanceName); getViewDataMigrationUtility().migrateData(instanceDefinition, originInstanceDefinition, false); Response.ResponseBuilder builder = Response.status(Response.Status.OK); return builder.build(); }  @PUT @Path("{originVersion}/{originInstanceName}") @ApiOperation(value = "Migrate view instance data", notes = "Migrates view instance persistence data from origin view instance specified in the path params.") @ApiResponses({ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION), @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_NOT_FOUND), @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED), @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED), @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR), @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = MSG_INVALID_ARGUMENTS), }) Response migrateData( @ApiParam(value = "view name") @PathParam("viewName") String viewName,
                               @ApiParam(value = "view version") @PathParam("version") String viewVersion,
                               @ApiParam(value = "instance name") @PathParam("instanceName") String instanceName,
                               @ApiParam(value = "origin version") @PathParam("originVersion") String originViewVersion,
                               @ApiParam(value = "origin instance name") @PathParam("originInstanceName") String originInstanceName);  }### Answer:
@Test public void testServiceMigrateCallNotAdmin() throws Exception { ViewRegistry viewRegistry = createNiceMock(ViewRegistry.class); expect(viewRegistry.checkAdmin()).andReturn(false).anyTimes(); replay(viewRegistry); ViewRegistry.initInstance(viewRegistry); ViewDataMigrationService service = new ViewDataMigrationService(); thrown.expect(WebApplicationException.class); service.migrateData(viewName,version1,instanceName,version2, instanceName); }