public async Task SetWithMetadataAsync_Test()
        {
            var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>();

            optionsBuilder.UseSqlite($"Data Source={Path.GetTempFileName()}");

            var lib    = new GameRecordLibrary(optionsBuilder);
            var record = await lib.CreateRecordAsync("NINTENDO_NES");

            var guid = record.RecordID;

            record.Metadata.Add("is_test", "true");
            await lib.UpdateRecordAsync(record);

            var newRecord = await lib.GetAllRecordsAsync().FirstAsync();

            Assert.Equal(guid, newRecord.RecordID);
            Assert.Equal(record.PlatformID, newRecord.PlatformID);
            Assert.Contains("is_test", newRecord.Metadata.Keys);
            Assert.Equal("true", newRecord.Metadata["is_test"]);

            newRecord.Metadata.Add("is_test_two", "true");
            await lib.UpdateRecordAsync(newRecord);

            var newNewRecord = await lib.GetAllRecordsAsync().FirstAsync();

            Assert.Equal(guid, newNewRecord.RecordID);
            Assert.Equal(record.PlatformID, newNewRecord.PlatformID);
            Assert.Contains("is_test", newNewRecord.Metadata.Keys);
            Assert.Equal("true", newNewRecord.Metadata["is_test"]);
            Assert.Contains("is_test_two", newNewRecord.Metadata.Keys);
            Assert.Equal("true", newNewRecord.Metadata["is_test_two"]);
        }
        public async Task SetMultipleAsync_Test()
        {
            var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>();

            optionsBuilder.UseSqlite($"Data Source={Path.GetTempFileName()}");
            var lib    = new GameRecordLibrary(optionsBuilder);
            var record = await lib.CreateRecordAsync("NINTENDO_NES");

            var record2 = await lib.CreateRecordAsync("NINTENDO_NES");

            record.Title  = "Test Game";
            record2.Title = "Test Game 2";

            await lib.UpdateRecordAsync(record);

            await lib.UpdateRecordAsync(record2);
        }