public void ReadAndWrite_InParallelThreads() { using (var file = new TempFile()) { using (var db = new LiteDbAdapter(file.Filename)) { var iterations = Parallel.For(0, 100, i => { if (i % 2 == 0) { db.UpsertServerInfo(TestData.Server); } else { db.GetServers().Count().Should().BeLessOrEqualTo(1); } }); while (!iterations.IsCompleted) { Thread.Sleep(100); } var result = db.GetServers().ToArray(); result.Length.ShouldBeEquivalentTo(1); result[0].Should().Be(TestData.Server); } } }
public void DoNotAddNewRecords_IfServerAlreadyAdded_InParallelThreads() { using (var file = new TempFile()) using (var db = new LiteDbAdapter(file.Filename)) { var iterations = Parallel.For(0, 100, _ => { db.GetServers().Count(x => x.endpoint == TestData.Server.endpoint).Should().BeLessOrEqualTo(1); db.UpsertServerInfo(TestData.Server); db.GetServers().Count(x => x.endpoint == TestData.Server.endpoint).Should().Be(1); }); while (!iterations.IsCompleted) { Thread.Sleep(100); } var result = db.GetServers().ToArray(); result.Length.ShouldBeEquivalentTo(1); result[0].Should().Be(TestData.Server); } }
public void NotAddNewRecord_IfServerAlreadyAdded() { using (var file = new TempFile()) using (var db = new LiteDbAdapter(file.Filename)) { for (var i = 0; i < 10; i++) { db.UpsertServerInfo(TestData.Server); db.UpsertServerInfo(new GameServer { endpoint = TestData.Server.endpoint, info = new ServerInfo() }); db.UpsertServerInfo(TestData.Server); } var result = db.GetServers().ToArray(); result.Length.ShouldBeEquivalentTo(1); result[0].Should().Be(TestData.Server); } }
public void ReturnAllAddedRecords() { using (var file = new TempFile()) { using (var db = new LiteDbAdapter(file.Filename)) { IList <GameServer> serverInfos = TestData.Servers; foreach (var info in serverInfos) { db.UpsertServerInfo(info); } var result = db.GetServers(); result.Should().BeEquivalentTo(serverInfos); } } }