package dk.kb.yggdrasil.bitmag; import java.io.File; import org.bitrepository.access.getchecksums.GetChecksumsClient; import org.bitrepository.access.getfile.GetFileClient; import org.bitrepository.access.getfileids.GetFileIDsClient; import org.bitrepository.common.settings.Settings; import org.bitrepository.modify.putfile.PutFileClient; import org.bitrepository.protocol.FileExchange; import org.bitrepository.protocol.messagebus.MessageBus; import org.mockito.Mockito; import dk.kb.yggdrasil.exceptions.YggdrasilException; import dk.kb.yggdrasil.utils.TravisUtils; /** * Testing API for the Bitrepository. * Allows overriding of the clients, so we do not have to use an actual Bitrepository for testing. */ public class BitrepositoryTestingAPI extends Bitrepository { FileExchange fileExchange = null; public BitrepositoryTestingAPI(File configFile) throws YggdrasilException { super(new BitrepositoryConfig(configFile)); } public void setPutFileClient(PutFileClient client) { this.bitMagPutClient = client; } public void setGetFileClient(GetFileClient client) { this.bitMagGetClient = client; } public void setGetFileIDsClient(GetFileIDsClient client) { this.bitMagGetFileIDsClient = client; } public void setGetChecksumsClient(GetChecksumsClient client) { this.bitMagGetChecksumsClient = client; } public void setFileExchange(FileExchange fe) { this.fileExchange = fe; } @Override protected void initBitmagMessageBus() { this.bitMagMessageBus = Mockito.mock(MessageBus.class); } @Override protected void initBitMagClients() { if (!TravisUtils.runningOnTravis()) { super.initBitMagClients(); } } @Override protected FileExchange getFileExchange(Settings bitmagSettings) { if(fileExchange == null) { return super.getFileExchange(bitmagSettings); } else { return fileExchange; } } }