public void TestMockTransaction() { ITransaction mock0 = new MockTransaction(); ITransaction mock1 = new MockTransaction(); long dummy = mock0.CommitSequenceNumber; long start = dummy; dummy = mock0.TransactionId; Assert.True(dummy == start, $"mock0.TransactionId is {dummy} not {start}"); dummy = mock0.GetVisibilitySequenceNumberAsync().Result; Assert.True(dummy == start, $"mock0.GetVisibilitySequenceNumberAsync is {dummy} not {start}"); dummy = mock1.CommitSequenceNumber; Assert.True(dummy == (start + 1), $"mock1.CommitSequenceNumber is {dummy} not {(start + 1)}"); dummy = mock1.TransactionId; Assert.True(dummy == (start + 1), $"mock1.TransactionId is {dummy} not {(start + 1)}"); dummy = mock1.GetVisibilitySequenceNumberAsync().Result; Assert.True(dummy == (start + 1), $"mock1.GetVisibilitySequenceNumberAsync is {dummy} not {(start + 1)}"); mock0.Abort(); mock0.Dispose(); mock1.CommitAsync(); mock1.Dispose(); }
public void TestMockReliableDictionary() { IReliableDictionary <string, Dictionary <string, object> > mock = new MockReliableDictionary <string, Dictionary <string, object> >(); CancellationTokenSource tokenSource = new CancellationTokenSource(); TimeSpan timeout = TimeSpan.FromSeconds(10.0); ITransaction mockTx = new MockTransaction(); Checkpoint ck1 = new Checkpoint("666", 1); mock.SetAsync(mockTx, "one", ck1.ToDictionary(), timeout, tokenSource.Token).Wait(); Checkpoint ck2 = new Checkpoint("7777", 2); mock.SetAsync(mockTx, "two", ck2.ToDictionary(), timeout, tokenSource.Token).Wait(); Checkpoint ck3 = new Checkpoint("88888", 3); mock.SetAsync(mockTx, "three", ck3.ToDictionary(), timeout, tokenSource.Token).Wait(); ConditionalValue <Dictionary <string, object> > gotback; gotback = mock.TryGetValueAsync(mockTx, "nope", timeout, tokenSource.Token).Result; Assert.False(gotback.HasValue, "Found value for key 'nope'"); gotback = mock.TryGetValueAsync(mockTx, "one", timeout, tokenSource.Token).Result; Assert.True(gotback.HasValue, "Did not find value for key 'one'"); Checkpoint ck1back = Checkpoint.CreateFromDictionary(gotback.Value); Assert.Equal(ck1back.Offset, ck1.Offset); Assert.True(ck1back.SequenceNumber == ck1.SequenceNumber); gotback = mock.TryGetValueAsync(mockTx, "two", timeout, tokenSource.Token).Result; Assert.True(gotback.HasValue, "Did not find value for key 'two'"); Checkpoint ck2back = Checkpoint.CreateFromDictionary(gotback.Value); Assert.Equal(ck2back.Offset, ck2.Offset); Assert.True(ck2back.SequenceNumber == ck2.SequenceNumber); gotback = mock.TryGetValueAsync(mockTx, "three", timeout, tokenSource.Token).Result; Assert.True(gotback.HasValue, "Did not find value for key 'three'"); Checkpoint ck3back = Checkpoint.CreateFromDictionary(gotback.Value); Assert.Equal(ck3back.Offset, ck3.Offset); Assert.True(ck3back.SequenceNumber == ck3.SequenceNumber); }