Пример #1
0
        public void FilenameConstructor_SetsFilenameProperty_EqualToFileNameInParameter()
        {
            var sut = new Soltys.SoltysDb("file.db");

            Assert.False(sut.IsInMemoryDatabase);
            Assert.Equal("file.db", sut.FileName);
        }
Пример #2
0
        public void Remove_WhenRemoveOnNotExistingKey_ReturnsFalse()
        {
            using var sut = new Soltys.SoltysDb();
            var wasRemoved = sut.KV.Remove("foo");

            Assert.False(wasRemoved);
        }
Пример #3
0
        public void Get_NotInsertedValue_ThrowsKeyNotFoundException()
        {
            var          sut     = new Soltys.SoltysDb();
            const string keyName = "key";
            var          ex      = Assert.Throws <DbKeyNotFoundException>(() => sut.KV.Get(keyName));

            Assert.Equal(keyName, ex.KeyNotFound);
        }
Пример #4
0
        public void AsDirectory_EmptyKeyValueStore_ReturnsEmptyDictionary()
        {
            using var sut = new Soltys.SoltysDb();

            var dict = sut.KV.AsDictionary();

            Assert.NotNull(dict);
            Assert.Empty(dict);
        }
Пример #5
0
        public void Remove_WhenRemoveSuccessfully_ReturnsTrue()
        {
            using var sut = new Soltys.SoltysDb();

            sut.KV.Add("foo", "bar");

            var wasRemoved = sut.KV.Remove("foo");

            Assert.True(wasRemoved);
        }
Пример #6
0
        public void Insert_Get_AllowsToInsertStringUnderKey_ReturnsEqualsValueToInserted()
        {
            using var sut = new Soltys.SoltysDb();
            sut.KV.Add("key3", "value3");
            sut.KV.Add("key2", "value2");
            sut.KV.Add("key1", "value1");

            var value = sut.KV.GetString("key1");

            Assert.Equal("value1", value);
        }
Пример #7
0
        public void GetInteger_ImproperCasting_RaisesWrongTypeException()
        {
            using var sut = new Soltys.SoltysDb();

            const string keyName = "key";

            sut.KV.Add(keyName, "42");

            var ex = Assert.Throws <DbWrongTypeCastException>(() => sut.KV.GetInteger(keyName));

            Assert.Equal(keyName, ex.Key);
            Assert.Equal(typeof(BsonString), ex.KeyType);
        }
Пример #8
0
        public void ChangeCollection_AllowsToHaveDifferentDictionaries()
        {
            using var sut = new Soltys.SoltysDb();

            sut.KV.Add("foo", "bar");
            sut.KV.ChangeCollection("myOwn");
            sut.KV.Add("foo", "baz");

            Assert.Equal("baz", sut.KV.GetString("foo"));

            sut.KV.ChangeCollection(sut.KV.DefaultCollection);
            Assert.Equal("bar", sut.KV.GetString("foo"));
        }
Пример #9
0
        public void AsDirectory_WorksAsExpected()
        {
            using var sut = new Soltys.SoltysDb();

            sut.KV.Add("foo", "bar");
            sut.KV.Add("key", "value");
            sut.KV.Add("Answer", "42");

            var dict = sut.KV.AsDictionary();

            Assert.Equal(3, dict.Count);
            Assert.IsType <BsonString>(dict["key"]);
            var entry = dict["key"] as BsonString;

            Assert.Equal("value", entry.Value);
        }
Пример #10
0
        public void Insert_BiggerThanPageSizeKeyValueData_DataSplitIntoMultiplePages()
        {
            using var sut = new Soltys.SoltysDb();
            const int numberOfItems = Page.PageSize / (2 * 16);
            KeyValuePair <string, string> lastPair = new KeyValuePair <string, string>();

            foreach (var pair in Generator.GenerateKeyValuesPairs(numberOfItems))
            {
                sut.KV.Add(pair.Key, pair.Value);
                lastPair = pair;
            }

            //just checking if KV store is not only write-only :)
            var dbValue = sut.KV.GetString(lastPair.Key);

            Assert.Equal(lastPair.Value, dbValue);
        }
Пример #11
0
        public void ParameterlessConstructor_CreatesInMemoryDatabase_ReturnsTrue()
        {
            var sut = new Soltys.SoltysDb();

            Assert.True(sut.IsInMemoryDatabase);
        }