package jnpf.fileStorage; import org.dromara.x.file.storage.core.FileStorageService; import org.dromara.x.file.storage.core.platform.MinioFileStorage; import org.junit.Test; import java.util.Collections; import java.util.concurrent.CopyOnWriteArrayList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class SeaweedFsStorageRegistrarTest { @Test public void registersEnabledSeaweedFsWithoutChangingDefaultPlatform() { SeaweedFsStorageProperties properties = new SeaweedFsStorageProperties(); properties.setSeaweedfs(Collections.singletonList(enabledConfig("seaweedfs-1"))); FileStorageService service = serviceWithEmptyStorageList(); SeaweedFsStorageRegistrar registrar = new SeaweedFsStorageRegistrar(properties, service); registrar.register(); assertEquals(1, service.getFileStorageList().size()); assertEquals("seaweedfs-1", service.getFileStorageList().get(0).getPlatform()); assertTrue(service.getFileStorageList().get(0) instanceof MinioFileStorage); registrar.unregister(); } @Test public void ignoresDisabledSeaweedFs() { SeaweedFsStorageProperties properties = new SeaweedFsStorageProperties(); SeaweedFsStorageProperties.SeaweedFsConfig config = enabledConfig("seaweedfs-1"); config.setEnableStorage(false); properties.setSeaweedfs(Collections.singletonList(config)); FileStorageService service = serviceWithEmptyStorageList(); new SeaweedFsStorageRegistrar(properties, service).register(); assertTrue(service.getFileStorageList().isEmpty()); } @Test(expected = IllegalStateException.class) public void rejectsMinioPlatformNameInSeaweedFsGroup() { SeaweedFsStorageProperties properties = new SeaweedFsStorageProperties(); properties.setSeaweedfs(Collections.singletonList(enabledConfig("minio-1"))); new SeaweedFsStorageRegistrar(properties, serviceWithEmptyStorageList()).register(); } private FileStorageService serviceWithEmptyStorageList() { FileStorageService service = new FileStorageService(); service.setFileStorageList(new CopyOnWriteArrayList<>()); return service; } private SeaweedFsStorageProperties.SeaweedFsConfig enabledConfig(String platform) { SeaweedFsStorageProperties.SeaweedFsConfig config = new SeaweedFsStorageProperties.SeaweedFsConfig(); config.setEnableStorage(true); config.setPlatform(platform); config.setAccessKey("access"); config.setSecretKey("secret"); config.setEndPoint("http://127.0.0.1:8333/"); config.setBucketName("bucket"); config.setBasePath("dms/"); return config; } }