예제 #1
0
        public void IsUniqueWithSessionScope()
        {
            ActiveRecordStarter.Initialize(GetConfigSource(), typeof(Blog2));
            Recreate();

            Blog2.DeleteAll();

            Blog2 blog = new Blog2();

            blog.Name = "hammett";
            blog.Create();

            using (new SessionScope())
            {
                Blog2 fromDb = Blog2.Find(blog.Id);
                fromDb.Name = "foo";
                fromDb.Save();
            }
        }
예제 #2
0
        public void IsUnique()
        {
            ActiveRecordStarter.Initialize(GetConfigSource(), typeof(Blog2));
            Recreate();

            Blog2.DeleteAll();

            Blog2 blog = new Blog2();

            blog.Name = "hammett";
            blog.Create();

            blog      = new Blog2();
            blog.Name = "hammett";

            String[] messages = blog.ValidationErrorMessages;
            Assert.IsTrue(messages.Length == 1);
            Assert.AreEqual("Name is currently in use. Please pick up a new Name.", messages[0]);

            blog.Create();
        }
예제 #3
0
        public void IsUniqueDoesNotDeadlockOnAutoflushTransaction()
        {
            InPlaceConfigurationSource source       = (InPlaceConfigurationSource)GetConfigSource();
            DefaultFlushType           originalType = source.DefaultFlushType;

            try
            {
                ActiveRecordStarter.Initialize(source, typeof(Blog2));
                Recreate();
                source.DefaultFlushType = DefaultFlushType.Auto;

                using (new TransactionScope())
                {
                    Blog2.DeleteAll();
                    Blog2 blog = new Blog2();
                    blog.Name = "FooBar";
                    blog.Save();
                }
            }
            finally
            {
                source.DefaultFlushType = originalType;
            }
        }