/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * 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. * See the License for the specific language governing permissions and * limitations under the License. */ package org.guvnor.structure.repositories; import java.util.Collection; import java.util.List; import org.guvnor.structure.organizationalunit.OrganizationalUnit; import org.jboss.errai.common.client.api.Caller; import org.jboss.errai.common.client.api.ErrorCallback; import org.jboss.errai.common.client.api.RemoteCallback; import org.uberfire.backend.vfs.Path; import org.uberfire.java.nio.base.version.VersionRecord; /** * Utility class for client side testing. * (analogous usage as OrganizationalUnitServiceCallerMock) */ public class RepositoryServiceCallerMock implements Caller<RepositoryService> { protected RepositoryServiceWrapper repositoryServiceWrapper; protected RemoteCallback remoteCallback; public RepositoryServiceCallerMock( RepositoryService repositoryService ) { repositoryServiceWrapper = new RepositoryServiceWrapper( repositoryService ); } @Override public RepositoryService call() { return repositoryServiceWrapper; } @Override public RepositoryService call( RemoteCallback<?> remoteCallback ) { return call( remoteCallback, null ); } @Override public RepositoryService call( RemoteCallback<?> remoteCallback, ErrorCallback<?> errorCallback ) { this.remoteCallback = remoteCallback; return repositoryServiceWrapper; } private class RepositoryServiceWrapper implements RepositoryService { RepositoryService repositoryService; public RepositoryServiceWrapper( RepositoryService repositoryService ) { this.repositoryService = repositoryService; } @Override public RepositoryInfo getRepositoryInfo( String alias ) { RepositoryInfo result = repositoryService.getRepositoryInfo( alias ); remoteCallback.callback( result ); return result; } @Override public List<VersionRecord> getRepositoryHistory( String alias, int startIndex ) { List<VersionRecord> result = repositoryService.getRepositoryHistory( alias, startIndex ); remoteCallback.callback( result ); return result; } @Override public List<VersionRecord> getRepositoryHistory( String alias, int startIndex, int endIndex ) { List<VersionRecord> result = repositoryService.getRepositoryHistory( alias, startIndex, endIndex ); remoteCallback.callback( result ); return result; } @Override public List<VersionRecord> getRepositoryHistoryAll( String alias ) { List<VersionRecord> result = repositoryService.getRepositoryHistoryAll( alias ); remoteCallback.callback( result ); return result; } @Override public Repository getRepository( String alias ) { Repository result = repositoryService.getRepository( alias ); remoteCallback.callback( result ); return result; } @Override public Repository getRepository( Path root ) { Repository result = repositoryService.getRepository( root ); remoteCallback.callback( result ); return result; } @Override public Collection<Repository> getAllRepositories() { Collection<Repository> result = repositoryService.getAllRepositories(); remoteCallback.callback( result ); return result; } @Override public Collection<Repository> getRepositories() { Collection<Repository> result = repositoryService.getRepositories(); remoteCallback.callback( result ); return result; } @Override public Repository createRepository( final OrganizationalUnit organizationalUnit, final String scheme, final String alias, final RepositoryEnvironmentConfigurations configuration ) throws RepositoryAlreadyExistsException { Repository result = repositoryService.createRepository( organizationalUnit, scheme, alias, configuration ); remoteCallback.callback( result ); return result; } @Override public Repository createRepository( final String scheme, final String alias, final RepositoryEnvironmentConfigurations configuration ) throws RepositoryAlreadyExistsException { Repository result = repositoryService.createRepository( scheme, alias, configuration ); remoteCallback.callback( result ); return result; } @Override public String normalizeRepositoryName( String name ) { String result = repositoryService.normalizeRepositoryName( name ); remoteCallback.callback( result ); return result; } @Override public boolean validateRepositoryName( String name ) { boolean result = repositoryService.validateRepositoryName( name ); remoteCallback.callback( result ); return result; } @Override public void addGroup( Repository repository, String group ) { repositoryService.addGroup( repository, group ); } @Override public void removeGroup( Repository repository, String group ) { repositoryService.removeGroup( repository, group ); } @Override public void removeRepository( String alias ) { repositoryService.removeRepository( alias ); } @Override public Repository updateRepositoryConfiguration( final Repository repository, final RepositoryEnvironmentConfigurations config ) { Repository result = repositoryService.updateRepositoryConfiguration( repository, config ); remoteCallback.callback( result ); return result; } } }