Added FolderChildrenTests and FolderTests

* implemented some testcases
* fixed some issues
This commit is contained in:
Markus Kreusch
2016-01-15 19:13:46 +01:00
parent 18cf25738e
commit 20e7f4a548
16 changed files with 386 additions and 64 deletions
@@ -8,6 +8,9 @@
*******************************************************************************/
package org.cryptomator.filesystem.inmem;
import static java.lang.String.format;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.time.Instant;
import java.util.Iterator;
@@ -32,7 +35,11 @@ class InMemoryFolder extends InMemoryNode implements Folder {
@Override
public Stream<InMemoryNode> children() {
return existingChildren.values().stream();
if (exists()) {
return existingChildren.values().stream();
} else {
throw new UncheckedIOException(new IOException(format("Folder %s does not exist", this)));
}
}
@Override
@@ -76,11 +83,11 @@ class InMemoryFolder extends InMemoryNode implements Folder {
if (target.exists()) {
target.delete();
}
assert!target.exists();
assert !target.exists();
target.create();
this.copyTo(target);
this.delete();
assert!this.exists();
assert !this.exists();
}
@Override
@@ -102,7 +109,7 @@ class InMemoryFolder extends InMemoryNode implements Folder {
subFolder.delete();
}
}
assert!this.exists();
assert !this.exists();
}
@Override
@@ -41,7 +41,7 @@ class InMemoryNode implements Node {
@Override
public boolean exists() {
return parent.children().anyMatch(node -> node.equals(this));
return parent.exists() && parent.children().anyMatch(node -> node.equals(this));
}
@Override