package ru.serce.jnrfuse.struct;
import org.junit.Test;
import ru.serce.jnrfuse.examples.MemoryFS;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.stream.Collectors;
import static org.junit.Assert.*;
public class MemoryFsTest extends BaseFsTest {
@Test
public void testReadWrite() throws Exception {
MemoryFS stub = new MemoryFS();
Path tmpDir = Files.createTempDirectory("hellofuse");
blockingMount(stub, tmpDir);
try {
File fileOne = new File(tmpDir.toAbsolutePath() + "/file1");
assertFalse("file mustn't exist", fileOne.exists());
assertTrue("file hasn't been created", fileOne.createNewFile());
try (PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(fileOne)))) {
writer.print("test1");
writer.print("test2");
}
String text = Files.lines(fileOne.toPath()).collect(Collectors.joining());
assertEquals("file content doesn't match what was written", "test1test2", text);
assertTrue("file can't be deleted", fileOne.delete());
assertFalse("file mustn't exist", fileOne.exists());
} finally {
stub.umount();
}
}
}