Exemple #1
0
        public async Task TestDbRoundMethods()
        {
            var dbPath    = GetPath();
            var cacheSize = 0;

            var(store, participants) = await InitBadgerStore(cacheSize, dbPath, logger);

            var round  = new RoundInfo();
            var events = new Dictionary <string, Event>();

            foreach (var p in participants)
            {
                var ev = new Event(new[] { new byte[] { } }, new BlockSignature[] {},
                                   new[] { "", "" },
                                   p.PubKey,
                                   0);

                events[p.Hex] = ev;
                round.AddEvent(ev.Hex(), true);
            }

            StoreError err;

            using (var tx = store.BeginTx())
            {
                err = await store.DbSetRound(0, round);

                Assert.Null(err);
                tx.Commit();

                RoundInfo storedRound;
                (storedRound, err) = await store.DbGetRound(0);

                Assert.Null(err);

                storedRound.ShouldCompareTo(round);

                var witnesses = await store.RoundWitnesses(0);

                var expectedWitnesses = round.Witnesses();

                Assert.Equal(expectedWitnesses.Length, witnesses.Length);

                foreach (var w in expectedWitnesses)
                {
                    Assert.Contains(w, witnesses);
                }
            }
        }