public void TestImportSameFileTwice() { RunTestWithRealm((realmFactory, storage) => { var realm = realmFactory.Context; var files = new RealmFileStore(realmFactory, storage); var testData = new MemoryStream(new byte[] { 0, 1, 2, 3 }); realm.Write(() => files.Add(testData, realm)); realm.Write(() => files.Add(testData, realm)); Assert.AreEqual(1, realm.All <RealmFile>().Count()); }); }
public void TestImportFile() { RunTestWithRealm((realmFactory, storage) => { var realm = realmFactory.Context; var files = new RealmFileStore(realmFactory, storage); var testData = new MemoryStream(new byte[] { 0, 1, 2, 3 }); realm.Write(() => files.Add(testData, realm)); Assert.True(files.Storage.Exists("0/05/054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8")); Assert.True(files.Storage.Exists(realm.All <RealmFile>().First().StoragePath)); }); }
public void TestPurgeUnreferenced() { RunTestWithRealm((realmFactory, storage) => { var realm = realmFactory.Context; var files = new RealmFileStore(realmFactory, storage); var file = realm.Write(() => files.Add(new MemoryStream(new byte[] { 0, 1, 2, 3 }), realm)); string path = file.StoragePath; Assert.True(realm.All <RealmFile>().Any()); Assert.True(files.Storage.Exists(path)); files.Cleanup(); Assert.False(realm.All <RealmFile>().Any()); Assert.False(file.IsValid); Assert.False(files.Storage.Exists(path)); }); }
public BeatmapManager(Storage storage, RealmAccess realm, RulesetStore rulesets, IAPIProvider?api, AudioManager audioManager, IResourceStore <byte[]> gameResources, GameHost?host = null, WorkingBeatmap?defaultBeatmap = null, bool performOnlineLookups = false) : base(storage, realm) { if (performOnlineLookups) { if (api == null) { throw new ArgumentNullException(nameof(api), "API must be provided if online lookups are required."); } onlineBeatmapLookupQueue = new BeatmapOnlineLookupQueue(api, storage); } var userResources = new RealmFileStore(realm, storage).Store; BeatmapTrackStore = audioManager.GetTrackStore(userResources); beatmapImporter = CreateBeatmapImporter(storage, realm, rulesets, onlineBeatmapLookupQueue); beatmapImporter.PostNotification = obj => PostNotification?.Invoke(obj); workingBeatmapCache = CreateWorkingBeatmapCache(audioManager, gameResources, userResources, defaultBeatmap, host); }
public void TestDontPurgeReferenced() { RunTestWithRealm((realmFactory, storage) => { var realm = realmFactory.Context; var files = new RealmFileStore(realmFactory, storage); var file = realm.Write(() => files.Add(new MemoryStream(new byte[] { 0, 1, 2, 3 }), realm)); var timer = new Stopwatch(); timer.Start(); realm.Write(() => { // attach the file to an arbitrary beatmap var beatmapSet = CreateBeatmapSet(CreateRuleset()); beatmapSet.Files.Add(new RealmNamedFileUsage(file, "arbitrary.resource")); realm.Add(beatmapSet); }); Logger.Log($"Import complete at {timer.ElapsedMilliseconds}"); string path = file.StoragePath; Assert.True(realm.All <RealmFile>().Any()); Assert.True(files.Storage.Exists(path)); files.Cleanup(); Logger.Log($"Cleanup complete at {timer.ElapsedMilliseconds}"); Assert.True(realm.All <RealmFile>().Any()); Assert.True(file.IsValid); Assert.True(files.Storage.Exists(path)); }); }