### Question:
DatabaseServerV4Controller implements DatabaseServerV4Endpoint { @Override @CheckPermissionByResourceObject public CreateDatabaseV4Response createDatabase(@ResourceObject CreateDatabaseV4Request request) { String result = databaseServerConfigService.createDatabaseOnServer( request.getExistingDatabaseServerCrn(), request.getDatabaseName(), request.getType(), Optional.ofNullable(request.getDatabaseDescription())); return new CreateDatabaseV4Response(result); }  @Override @DisableCheckPermissions DatabaseServerV4Responses list(String environmentCrn); @Override @CheckPermissionByResourceName(action = AuthorizationResourceAction.DESCRIBE_DATABASE_SERVER) DatabaseServerV4Response getByName(String environmentCrn, @ResourceName String name); @Override @CheckPermissionByResourceCrn(action = AuthorizationResourceAction.DESCRIBE_DATABASE_SERVER) DatabaseServerV4Response getByCrn(@ResourceCrn String crn); @Override @CheckPermissionByAccount(action = AuthorizationResourceAction.CREATE_DATABASE_SERVER) DatabaseServerStatusV4Response create(AllocateDatabaseServerV4Request request); @Override @CheckPermissionByResourceCrn(action = AuthorizationResourceAction.DELETE_DATABASE_SERVER) DatabaseServerV4Response release(@ResourceCrn String crn); @CheckPermissionByAccount(action = AuthorizationResourceAction.REGISTER_DATABASE_SERVER) DatabaseServerV4Response register(DatabaseServerV4Request request); @Override @CheckPermissionByResourceCrn(action = AuthorizationResourceAction.DELETE_DATABASE_SERVER) DatabaseServerV4Response deleteByCrn(@ResourceCrn String crn, boolean force); @Override @CheckPermissionByResourceName(action = AuthorizationResourceAction.DELETE_DATABASE_SERVER) DatabaseServerV4Response deleteByName(String environmentCrn, @ResourceName String name, boolean force); @Override @CheckPermissionByResourceCrnList(action = AuthorizationResourceAction.DELETE_DATABASE_SERVER) DatabaseServerV4Responses deleteMultiple(@ResourceCrnList Set<String> crns, boolean force); @Override @DisableCheckPermissions DatabaseServerTestV4Response test(DatabaseServerTestV4Request request); @Override @CheckPermissionByResourceObject CreateDatabaseV4Response createDatabase(@ResourceObject CreateDatabaseV4Request request); @Override @CheckPermissionByResourceCrn(action = AuthorizationResourceAction.START_DATABASE_SERVER) void start(@ResourceCrn @ValidCrn @NotNull String crn); @Override @CheckPermissionByResourceCrn(action = AuthorizationResourceAction.STOP_DATABASE_SERVER) void stop(@ResourceCrn @ValidCrn @NotNull String crn);  }### Answer:
@Test public void testCreateDatabase() { CreateDatabaseV4Request createRequest = new CreateDatabaseV4Request(); createRequest.setExistingDatabaseServerCrn(SERVER_CRN); createRequest.setDatabaseName("mydb"); createRequest.setType("hive"); createRequest.setDatabaseDescription("mine not yours"); when(service.createDatabaseOnServer(SERVER_CRN, "mydb", "hive", Optional.of("mine not yours"))).thenReturn("ok"); CreateDatabaseV4Response createResponse = underTest.createDatabase(createRequest); assertEquals("ok", createResponse.getResult()); }