blob: c078b27994e26e767bf33637ca1c78fb54a124cc [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package io.v.rx.syncbase;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.io.FileUtils;
import java.io.File;
import io.v.android.v23.V;
import io.v.baku.toolkit.VAndroidTestCase;
import io.v.baku.toolkit.blessings.BlessingsUtils;
import io.v.impl.google.services.mounttable.MountTableServer;
import io.v.v23.context.VContext;
import io.v.v23.rpc.ListenSpec;
import io.v.v23.rpc.Server;
import lombok.experimental.Delegate;
public class SgHostUtilLocalTest extends VAndroidTestCase {
private File mStorageRoot;
private Server mMountTable;
@Delegate
private SgHostUtilTestCases mTestCases;
@Override
protected void setUp() throws Exception {
super.setUp();
mStorageRoot = new File(getContext().getFilesDir(), "mounttable");
mStorageRoot.mkdirs();
VContext nsctx = getVContext();
nsctx = V.withListenSpec(nsctx, V.getListenSpec(nsctx).withAddress(
new ListenSpec.Address("tcp", "localhost:0")));
nsctx = MountTableServer.withNewServer(nsctx, new MountTableServer.Params()
.withStorageRootDir(mStorageRoot.getAbsolutePath())
.withPermissions(ImmutableMap.of("test", BlessingsUtils.OPEN_DATA_PERMS))
.withStatsPrefix("test"));
// TODO(rosswang): We might like to do this by changing the namespace root, but
// https://github.com/vanadium/issues/issues/1052
mMountTable = V.getServer(nsctx);
final String endpoint = mMountTable.getStatus().getEndpoints()[0].name();
mTestCases = new SgHostUtilTestCases(getContext(), getVContext(), endpoint);
}
@Override
protected void tearDown() throws Exception {
mMountTable.stop();
FileUtils.deleteDirectory(mStorageRoot);
super.tearDown();
}
}