mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ApplicationStoreTest — test stream provider
This commit is contained in:
+51
@@ -7,13 +7,18 @@ import com.intellij.openapi.components.*;
|
||||
import com.intellij.openapi.components.impl.stores.*;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.testFramework.LightPlatformLangTestCase;
|
||||
import com.intellij.util.xmlb.XmlSerializerUtil;
|
||||
import gnu.trove.THashMap;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Map;
|
||||
|
||||
public class ApplicationStoreTest extends LightPlatformLangTestCase {
|
||||
private File testAppConfig;
|
||||
@@ -53,10 +58,56 @@ public class ApplicationStoreTest extends LightPlatformLangTestCase {
|
||||
|
||||
public void testStreamProviderSaveIfSeveralStoragesConfigured() throws Exception {
|
||||
SeveralStoragesConfigured component = new SeveralStoragesConfigured();
|
||||
|
||||
MyStreamProvider streamProvider = new MyStreamProvider();
|
||||
componentStore.getStateStorageManager().setStreamProvider(streamProvider);
|
||||
|
||||
componentStore.initComponent(component, false);
|
||||
StoreUtil.doSave(componentStore);
|
||||
}
|
||||
|
||||
private static class MyStreamProvider extends StreamProvider {
|
||||
public final Map<RoamingType, Map<String, String>> data = new THashMap<RoamingType, Map<String, String>>();
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveContent(@NotNull String fileSpec,
|
||||
@NotNull byte[] content,
|
||||
int size,
|
||||
@NotNull RoamingType roamingType,
|
||||
boolean async) {
|
||||
getMap(roamingType).put(fileSpec, new String(content, 0, size, CharsetToolkit.UTF8_CHARSET));
|
||||
}
|
||||
|
||||
private Map<String, String> getMap(@NotNull RoamingType roamingType) {
|
||||
Map<String, String> map = data.get(roamingType);
|
||||
if (map == null) {
|
||||
map = new THashMap<String, String>();
|
||||
data.put(roamingType, map);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public InputStream loadContent(@NotNull String fileSpec, @NotNull RoamingType roamingType) throws IOException {
|
||||
String data = getMap(roamingType).get(fileSpec);
|
||||
return data == null ? null : new ByteArrayInputStream(data.getBytes(CharsetToolkit.UTF8_CHARSET));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(@NotNull String fileSpec, @NotNull RoamingType roamingType) {
|
||||
Map<String, String> map = data.get(roamingType);
|
||||
if (map != null) {
|
||||
map.remove(fileSpec);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MyComponentStore extends ComponentStoreImpl implements Disposable {
|
||||
private final StateStorageManager stateStorageManager;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user