コード例 #1
0
        /// <exception cref="System.Exception"></exception>
        private void AssertNoAccidentalDeletes(bool cascadeOnUpdate, bool cascadeOnDelete
                                               )
        {
            DeleteAll(typeof(CascadeOnDeleteTestCase.Holder));
            DeleteAll(typeof(CascadeOnDeleteTestCase.Item));
            IObjectClass oc = Fixture().Config().ObjectClass(typeof(CascadeOnDeleteTestCase.Holder
                                                                    ));

            oc.CascadeOnDelete(cascadeOnDelete);
            oc.CascadeOnUpdate(cascadeOnUpdate);
            Reopen();
            CascadeOnDeleteTestCase.Item   item   = new CascadeOnDeleteTestCase.Item();
            CascadeOnDeleteTestCase.Holder holder = new CascadeOnDeleteTestCase.Holder();
            holder.items = new CascadeOnDeleteTestCase.Item[] { item };
            Db().Store(holder);
            Db().Commit();
            holder.items[0].item = "abrakadabra";
            Db().Store(holder);
            if (!cascadeOnDelete && !cascadeOnUpdate)
            {
                // the only case, where we don't cascade
                Db().Store(holder.items[0]);
            }
            Assert.AreEqual(1, CountOccurences(typeof(CascadeOnDeleteTestCase.Item)));
            Db().Commit();
            Assert.AreEqual(1, CountOccurences(typeof(CascadeOnDeleteTestCase.Item)));
        }
コード例 #2
0
        protected override void Configure(IConfiguration config)
        {
            IObjectClass itemClass = config.ObjectClass(typeof(MultiDeleteTestCase.Item));

            itemClass.CascadeOnDelete(true);
            itemClass.CascadeOnUpdate(true);
        }
コード例 #3
0
            public virtual void Test()
            {
                ICommonConfigurationProvider config = ((ICommonConfigurationProvider)Subject());
                Config4Impl          legacy         = Db4oLegacyConfigurationBridge.AsLegacy(config);
                ICommonConfiguration common         = config.Common;

                common.ActivationDepth = 42;
                Assert.AreEqual(42, legacy.ActivationDepth());
                Assert.AreEqual(42, common.ActivationDepth);
                // TODO: assert
                common.Add(new _IConfigurationItem_41());
                TypeAlias alias = new TypeAlias("foo", "bar");

                common.AddAlias(alias);
                Assert.AreEqual("bar", legacy.ResolveAliasStoredName("foo"));
                Assert.AreEqual("foo", legacy.ResolveAliasRuntimeName("bar"));
                common.RemoveAlias(alias);
                Assert.AreEqual("foo", legacy.ResolveAliasStoredName("foo"));
                common.AllowVersionUpdates = false;
                Assert.IsFalse(legacy.AllowVersionUpdates());
                common.AutomaticShutDown = false;
                Assert.IsFalse(legacy.AutomaticShutDown());
                common.BTreeNodeSize = 42;
                Assert.AreEqual(42, legacy.BTreeNodeSize());
                common.Callbacks = false;
                Assert.AreEqual(CallBackMode.None, legacy.CallbackMode());
                common.CallConstructors = false;
                Assert.IsTrue(legacy.CallConstructors().DefiniteNo());
                common.DetectSchemaChanges = false;
                Assert.IsFalse(legacy.DetectSchemaChanges());
                DiagnosticCollector collector = new DiagnosticCollector();

                common.Diagnostic.AddListener(collector);
                IDiagnostic diagnostic = DummyDiagnostic();

                legacy.DiagnosticProcessor().OnDiagnostic(diagnostic);
                collector.Verify(new object[] { diagnostic });
                common.ExceptionsOnNotStorable = true;
                Assert.IsTrue(legacy.ExceptionsOnNotStorable());
                common.InternStrings = true;
                Assert.IsTrue(legacy.InternStrings());
                // TODO: assert
                common.MarkTransient("Foo");
                common.MessageLevel = 3;
                Assert.AreEqual(3, legacy.MessageLevel());
                IObjectClass objectClass = common.ObjectClass(typeof(CommonAndLocalConfigurationTestSuite.BaseConfigurationProviderTestUnit.Item
                                                                     ));

                objectClass.CascadeOnDelete(true);
                Assert.IsTrue(((Config4Class)legacy.ObjectClass(typeof(CommonAndLocalConfigurationTestSuite.BaseConfigurationProviderTestUnit.Item
                                                                       ))).CascadeOnDelete().DefiniteYes());
                Assert.IsTrue(((Config4Class)common.ObjectClass(typeof(CommonAndLocalConfigurationTestSuite.BaseConfigurationProviderTestUnit.Item
                                                                       ))).CascadeOnDelete().DefiniteYes());
                common.OptimizeNativeQueries = false;
                Assert.IsFalse(legacy.OptimizeNativeQueries());
                Assert.IsFalse(common.OptimizeNativeQueries);
                common.Queries.EvaluationMode(QueryEvaluationMode.Lazy);
                Assert.AreEqual(QueryEvaluationMode.Lazy, legacy.EvaluationMode());
                // TODO: test reflectWith()
                // TODO: this probably won't sharpen :/
                TextWriter outStream = Sharpen.Runtime.Out;

                common.OutStream = outStream;
                Assert.AreEqual(outStream, legacy.OutStream());
                IStringEncoding stringEncoding = new _IStringEncoding_113();

                common.StringEncoding = stringEncoding;
                Assert.AreEqual(stringEncoding, legacy.StringEncoding());
                common.TestConstructors = false;
                Assert.IsFalse(legacy.TestConstructors());
                common.TestConstructors = true;
                Assert.IsTrue(legacy.TestConstructors());
                common.UpdateDepth = 1024;
                Assert.AreEqual(1024, legacy.UpdateDepth());
                common.WeakReferences = false;
                Assert.IsFalse(legacy.WeakReferences());
                common.WeakReferenceCollectionInterval = 1024;
                Assert.AreEqual(1024, legacy.WeakReferenceCollectionInterval());
            }