Example #1
0
        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();
        }
Example #2
0
        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);
        }