diff options
author | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-10-26 05:00:12 +0800 |
---|---|---|
committer | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-10-26 05:00:12 +0800 |
commit | 578b7d1db256d9a582cef45ae5d13d858a977416 (patch) | |
tree | b856cc5af32a0d649321f501f2966d013cade6c0 /src/test/persistence/FSTest.java | |
parent | f73bca3372a31f360d894dcbe8580cef779af739 (diff) | |
download | jca-578b7d1db256d9a582cef45ae5d13d858a977416.tar jca-578b7d1db256d9a582cef45ae5d13d858a977416.tar.gz jca-578b7d1db256d9a582cef45ae5d13d858a977416.tar.bz2 jca-578b7d1db256d9a582cef45ae5d13d858a977416.zip |
Add persistence
Signed-off-by: Yuuta Liang <yuutaw@student.cs.ubc.ca>
Diffstat (limited to 'src/test/persistence/FSTest.java')
-rw-r--r-- | src/test/persistence/FSTest.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/test/persistence/FSTest.java b/src/test/persistence/FSTest.java new file mode 100644 index 0000000..d8b8660 --- /dev/null +++ b/src/test/persistence/FSTest.java @@ -0,0 +1,50 @@ +package persistence; + +import model.asn1.exceptions.InvalidDBException; +import org.json.JSONObject; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class FSTest { + @Test + void testReadFail() { + // open(2) - EPERM + assertThrows(InvalidDBException.class, () -> FS.read(Path.of("/dev/mem"))); + // open(2) - EISDIR + assertThrows(InvalidDBException.class, () -> FS.read(Path.of("/"))); + // open(2) - ENOENT + assertThrows(InvalidDBException.class, + () -> FS.read(Path.of("919123082901382901", "9210388888888190231"))); + // Cannot parse + assertThrows(InvalidDBException.class, () -> FS.read(Path.of("/dev/null"))); + assertThrows(InvalidDBException.class, () -> FS.read(Path.of("README.md"))); + } + + @Test + void testReadSuccess() { + assertTrue(FS.read(Path.of("data", "valid_full.json")).keySet().contains("serial")); + } + + @Test + void testWriteFail() { + // open(2) - EISDIR + assertThrows(IOException.class, () -> FS.write(Path.of("/"), new JSONObject())); + // open(2) - EPERM + assertThrows(IOException.class, () -> FS.write(Path.of("/dev/abc"), new JSONObject())); + // open(2) - ENOENT + assertThrows(IOException.class, () -> FS.write(Path.of("asdjiasoda", "jisdsaod"), new JSONObject())); + } + + @Test + void testWriteSuccess() throws IOException { + FS.write(Path.of("data", ".tmp"), new JSONObject()); + assertTrue(Files.exists(Path.of("data"))); + Files.delete(Path.of("data", ".tmp")); + } +} |