Exemplo n.º 1
0
        public void TestDatabaseDeleteByInstance()
        {
            var testModel = TestModel.MakeTestModel();

            Func <int> countKeys  = () => _databaseInstance.Query <TestModel, int>().Count();
            Func <int> countIndex =
                () => _databaseInstance.Query <TestModel, string, int>(TestDatabaseInstance.DATAINDEX).Count();

            Assert.Equal(0, countKeys());  //,"Database initialized with invalid key count.");
            Assert.Equal(0, countIndex()); //Database initialized with invalid index count.");

            var key = _databaseInstance.SaveAsync(testModel).Result;

            Assert.Equal(1, countKeys());  //Keys not updated with save.");
            Assert.Equal(1, countIndex()); //Index count not updated with save.");

            var actual = _databaseInstance.LoadAsync <TestModel>(key).Result;

            Assert.NotNull(actual); //Test model did not re-load.");

            _databaseInstance.DeleteAsync(actual).Wait();

            Assert.Equal(0, countKeys());  //Database updated with invalid key count after delete.");
            Assert.Equal(0, countIndex()); //Database updated with invalid index count after delete.");

            actual = _databaseInstance.LoadAsync <TestModel>(key).Result;

            Assert.Null(actual); //Delete failed: loaded actual value after delete.");
        }
Exemplo n.º 2
0
        public void TestTriggerBeforeDelete()
        {
            var instance1 = new TriggerClass {
                Data = Guid.NewGuid().ToString()
            };

            _databaseInstance.SaveAsync <TriggerClass, int>(instance1).Wait();
            var key2 = _databaseInstance.SaveAsync <TriggerClass, int>(new TriggerClass
            {
                Id = TriggerClassTestTrigger.BADDELETE, Data = Guid.NewGuid().ToString()
            }).Result;

            _databaseInstance.DeleteAsync(instance1).Wait(); // should be no problem

            var handled = false;

            try
            {
                _databaseInstance.DeleteAsync(typeof(TriggerClass), key2).Wait();
            }
            catch (AggregateException ex)
            {
                if (ex.InnerExceptions.Single() is SterlingTriggerException)
                {
                    handled = true;
                }
            }

            Assert.True(handled); //Trigger failed to throw exception for delete operation on key = 5.");
        }