コード例 #1
0
 public void AddPostToThreadSetPostThreadToAddedThread()
 {
     DiscussionThread thread = new DiscussionThread();
     Post post = new Post();
     Assert.IsNull(post.Thread);
     thread.AddPost(post);
     Assert.AreEqual(thread, post.Thread);
    
 }
コード例 #2
0
        public void CanSavePost()
        {
            Post post = new Post();
            post.Thread = GetThread_Persistent();

            post.Title = "First Post";
            post.Content = "Content";
            post.Author = post.Thread.Forum.Manager;

            Repository<Post>.Save(post);

            UnitOfWork.Current.TransactionalFlush();
            UnitOfWork.CurrentSession.Evict(post);
            Post fromDb = Repository<Post>.Get(post.Id);
            Assert.AreNotSame(post, fromDb);

            Assert.AreEqual("First Post", fromDb.Title);
            Assert.AreEqual("Content", fromDb.Content);
            Assert.AreEqual(post.Author.Id, fromDb.Author.Id);
            Assert.AreEqual(post.Thread.Id, fromDb.Thread.Id);
        }
コード例 #3
0
        public void ThreadPostsPersistenceByReachability()
        {
            Post post = new Post();
            DiscussionThread discussionThread = GetThread_Persistent();

            discussionThread.AddPost(post);

            post.Title = "First Post";
            post.Content = "Content";
            post.Author = post.Thread.Forum.Manager;

            UnitOfWork.Current.TransactionalFlush();
            UnitOfWork.CurrentSession.Evict(post);
            UnitOfWork.CurrentSession.Evict(discussionThread);

            Post fromDb = Repository<Post>.Get(post.Id);
            Assert.IsNotNull(fromDb);
            Assert.AreNotSame(post, fromDb);

            DiscussionThread threadFromDb = fromDb.Thread;
            Assert.AreNotSame(discussionThread, threadFromDb);
            Assert.AreEqual(discussionThread.Id, threadFromDb.Id);

            Assert.IsTrue(threadFromDb.Posts.Contains(fromDb));
        }