Beispiel #1
0
        public void InsertRange()
        {
            _transformDatabase.InsertRange(_values);

            // now the memory db should have the transformed values in them
            _memoryDatabase.EnumerateAggressively(3)
            .Should()
            .BeEquivalentTo(_expectValues, "Inserting values into a transform database should insert the transformed values into the underlying database.");
        }
        public void Enumerate()
        {
            var db = new MemoryDatabase <string, int>();
            var kt = new MockTransformer();
            var vt = new MockTransformer();

            var tdb = new TransformDatabase <string, int, int, string>
                      (
                db: db,
                keyTransformer: new ReverseTransformer <string, int>(kt),
                valueTransformer: vt
                      );

            tdb.InsertRange(new KeyValuePair <int, string>[]
            {
                new KeyValuePair <int, string>(1, "a"),
                new KeyValuePair <int, string>(2, "b"),
                new KeyValuePair <int, string>(3, "c"),
            });

            tdb.EnumerateAggressively(3)
            .Should()
            .BeEquivalentTo(new KeyValuePair <int, string>[]
            {
                new KeyValuePair <int, string>(1, "a"),
                new KeyValuePair <int, string>(2, "b"),
                new KeyValuePair <int, string>(3, "c"),
            });
        }
Beispiel #3
0
        public void WorksIGuess()
        {
            var st = new StringTransformer();

            // using (var fs = File.Open("copy.db", FileMode.OpenOrCreate))
            using (var ms = new MemoryStream())
            {
                using (var lowlevelDBIODevice = new StringDB5_0_0LowlevelDatabaseIODevice(ms, true))
                    using (var dbIODevice = new DatabaseIODevice(lowlevelDBIODevice))
                        using (var iodb = new IODatabase(dbIODevice))
                            using (var db = new TransformDatabase <byte[], byte[], string, string>(iodb, st, st))
                            {
                                db.Insert("test", "value");
                                db.InsertRange(new KeyValuePair <string, string>[]
                                {
                                    new KeyValuePair <string, string>("a,", "c,"),
                                    new KeyValuePair <string, string>("b,", "d,"),
                                });

                                File.WriteAllBytes("sdb.db", ms.ToArray());

                                db.EnumerateAggressively(2)
                                .Should()
                                .BeEquivalentTo
                                (
                                    new KeyValuePair <string, string>[]
                                {
                                    new KeyValuePair <string, string>("test", "value"),
                                    new KeyValuePair <string, string>("a,", "c,"),
                                    new KeyValuePair <string, string>("b,", "d,"),
                                }
                                );
                            }

                ms.Seek(0, SeekOrigin.Begin);
                // ms.CopyTo(fs);
            }
        }