Add more FileSystem unit tests. A new MockFileSystemImpl is used to mock the low-level implementation.