Exemplo n.º 1
0
        public void CanCreateAndQuery()
        {
            var r1 = CreateRecord("key", "data");
            var r2 = CreateRecord("foo", "Bar");
            var r3 = CreateRecord("foo", "Quux");      // same key
            var r4 = CreateRecord("", "");             // empty key and data

            string filePath = Path.GetTempFileName();  // create empty file

            CreateCdb(filePath, r1, r2, r3, r4);

            var cdb = Cdb.Open(filePath);

            Assert.Equal(r1.Data, cdb.Find(r1.Key));

            cdb.FindStart();
            var d23 = new[] { cdb.FindNext(r2.Key), cdb.FindNext(r2.Key) };

            Assert.Null(cdb.FindNext(r2.Key));
            Assert.Contains(r2.Data, d23);
            Assert.Contains(r3.Data, d23);

            Assert.Equal(r4.Data, cdb.Find(r4.Key));

            Assert.Null(cdb.Find(Encoding.UTF8.GetBytes("NoSuchKey")));

            cdb.Close();

            File.Delete(filePath);
        }
Exemplo n.º 2
0
        public void CanFindAll()
        {
            int count = 10000;
            var array = GenerateRandomPairs(count).Distinct(new RecordKeyEquality()).ToArray();

            string filePath = Path.GetTempFileName();             // create empty file

            CreateCdb(filePath, array);

            using (var cdb = Cdb.Open(filePath))
            {
                foreach (var pair in array)
                {
                    var data = cdb.Find(pair.Key);

                    Assert.NotNull(data);
                    Assert.Equal(pair.Data, data);
                }
            }
        }