private async Task DontCreateFileWhenReading()
        {
            await Create("@ace", "some_other_file").DisposeAsync();

            var storage = new DirectoryStorage(_tmpDir.FullName);
            var mods    = await storage.GetMods(CancellationToken.None);

            await mods.Values.Single().OpenRead("/mod.cpp", CancellationToken.None);

            Assert.False(File.Exists(Path.Join(_tmpDir.FullName, "@ace", "mod.cpp")));
        }
        private async Task GetMods()
        {
            await using var file = Create("@ace", "mod.cpp");
            await file.WriteLineAsync("Ey yo");

            var storage = new DirectoryStorage(_tmpDir.FullName);

            var mods = await storage.GetMods(CancellationToken.None);

            Assert.Single(mods);
            Assert.Contains("@ace", (IDictionary <string, IStorageMod>)mods);
        }
        private async Task CreateNestedFile()
        {
            await using var file = Create("@ace", "mod.cpp");
            await file.WriteLineAsync("Ey yo");

            var storage = new DirectoryStorage(_tmpDir.FullName);
            var mods    = await storage.GetMods(CancellationToken.None);

            await using var newFile = await(mods.Values.Single().OpenWrite("/addons/addon2.pbo", CancellationToken.None));
            await newFile.WriteAsync(new byte[] { 1, 2, 3 });

            newFile.Close();
            // TODO: check file contents, file still in use
        }