コード例 #1
0
        public void Test_CreateUpdateDeleteThread()
        {
            MessageBoard messageBoard = Test_MessageBoards.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.Random);

            MessageBoardThreadManager manager = new MessageBoardThreadManager(this.DataStore);
            MessageBoardThread        record  = Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, messageBoard, this.Random);

            MessageBoardThread recordToCompare;

            for (int i = 0; i < this.DefaultUpdateTestIterations; i++)
            {
                PopulateWithRandomValues(record, this.DummyDataManager, this.Random);
                recordToCompare = record;

                manager.Update(record);
                record = manager.GetMessageBoardThread(record.MessageBoardThreadId);

                string errors = string.Empty;
                // TODO (Roman): relax datetime comparisons
                Assert.IsTrue(DebugUtility.ArePropertyValuesEqual(record, recordToCompare, out errors), errors);
                Trace.WriteLine("Update test successfull.");
            }

            Delete(this.DataStore, record);
            Test_MessageBoards.Delete(this.DataStore, messageBoard);
        }
コード例 #2
0
        internal static Message Create(IDataStore dataStore, IApplicationSettings applicationSettings, IApplication application
                                       , IUserBasic author, MessageBoardThread messageBoardThread, Random random)
        {
            MessageManager manager = new MessageManager(dataStore);

            Message message = new Message(
                author
                , messageBoardThread
                , "Message Subject" + random.Next(1000000, 10000000)
                , "Message Body" + random.Next(1000000, 10000000));

            message.MessageStatus = DebugUtility.GetRandomEnum <MessageStatus>(random);


            BusinessObjectActionReport <DataRepositoryActionStatus> report = manager.Create(message);

            Assert.AreEqual(DataRepositoryActionStatus.Success, report.Status);
            Assert.Greater(message.MessageId, 0);

            Message dsMessage = manager.GetMessage(message.MessageId);

            Assert.IsNotNull(dsMessage);

            return(dsMessage);
        }
コード例 #3
0
        internal static void Delete(IDataStore dataStore, MessageBoardThread messageBoardThread)
        {
            MessageBoardThreadManager manager = new MessageBoardThreadManager(dataStore);

            BusinessObjectActionReport <DataRepositoryActionStatus> report = manager.Delete(messageBoardThread);

            Assert.AreEqual(DataRepositoryActionStatus.Success, report.Status);
            Assert.IsNull(manager.GetMessageBoardThread(messageBoardThread.MessageBoardThreadId));

            Trace.WriteLine("Successfully deleted messageBoardThread " + messageBoardThread.MessageBoardId);
        }
コード例 #4
0
        public void Test_Delete_MessageBoard()
        {
            IUserBasic         userBasic          = Test_WorkmateMembershipProvider.CreateUser(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.DummyDataManager);
            MessageBoard       messageBoard       = Test_MessageBoards.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.Random);
            MessageBoardThread messageBoardThread = Test_MessageBoardThreads.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, messageBoard, this.Random);
            Message            message            = Test_Messages.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, userBasic, messageBoardThread, this.Random);

            Test_MessageBoards.Delete(this.DataStore, messageBoard);

            MessageBoardThreadManager messageBoardThreadManager = new MessageBoardThreadManager(this.DataStore);
            MessageManager            messageManager            = new MessageManager(this.DataStore);

            Assert.IsNull(messageBoardThreadManager.GetMessageBoardThread(messageBoardThread.MessageBoardThreadId));
            Assert.IsNull(messageManager.GetMessage(message.MessageId));
        }
コード例 #5
0
        public void Test_CreateUpdateDelete()
        {
            IUserBasic userBasic = Test_WorkmateMembershipProvider.CreateUser(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.DummyDataManager);

            MessageBoard       messageBoard       = Test_MessageBoards.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.Random);
            MessageBoardThread messageBoardThread = Test_MessageBoardThreads.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, messageBoard, this.Random);
            Message            message            = Test_Messages.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, userBasic, messageBoardThread, this.Random);

            MessageRatingManager messageRatingManager = new MessageRatingManager(this.DataStore);

            BaseRatingInfo baseRatingInfo;
            int            totalThumbsUp = 0;

            for (int i = 0; i < 10; i++)
            {
                userBasic = Test_WorkmateMembershipProvider.CreateUser(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.DummyDataManager);

                MessageRating record = new MessageRating(userBasic, message, DebugUtility.GetRandomEnum <MessageRatingType>(this.Random));

                BusinessObjectActionReport <RatingDataRepositoryActionStatus> report = messageRatingManager.Create(record, out baseRatingInfo);
                Assert.AreEqual(RatingDataRepositoryActionStatus.Success, report.Status);

                totalThumbsUp += (short)record.MessageRatingType;
                Assert.AreEqual(totalThumbsUp, baseRatingInfo.GetTotalThumbsUp());
                Assert.AreEqual(i + 1 - totalThumbsUp, baseRatingInfo.GetTotalThumbsDown());

                record = new MessageRating(userBasic, message, DebugUtility.GetRandomEnum <MessageRatingType>(this.Random, record.MessageRatingType));
                messageRatingManager.CreateOrUpdateExisting(record, out baseRatingInfo);
                Assert.AreEqual(RatingDataRepositoryActionStatus.Success, report.Status);

                totalThumbsUp += record.MessageRatingType == MessageRatingType.ThumbsUp ? 1 : -1;
                Assert.AreEqual(totalThumbsUp, baseRatingInfo.GetTotalThumbsUp());
                Assert.AreEqual(i + 1 - totalThumbsUp, baseRatingInfo.GetTotalThumbsDown());
            }

            Test_MessageBoardThreads.Delete(this.DataStore, messageBoardThread);

            MessageBoardThreadManager messageBoardThreadManager = new MessageBoardThreadManager(this.DataStore);
            MessageManager            messageManager            = new MessageManager(this.DataStore);

            Assert.IsNull(messageBoardThreadManager.GetMessageBoardThread(messageBoardThread.MessageBoardThreadId));
            Assert.IsNull(messageManager.GetMessage(message.MessageId));
            Assert.IsEmpty(messageRatingManager.GetAllRatingsForMessage(message));

            Test_MessageBoards.Delete(this.DataStore, messageBoard);
        }
コード例 #6
0
        internal static MessageBoardThread Create(IDataStore dataStore, IApplicationSettings applicationSettings, IApplication application, MessageBoard messageBoard, Random random)
        {
            MessageBoardThreadManager manager = new MessageBoardThreadManager(dataStore);

            MessageBoardThread messageBoardThread = new MessageBoardThread(
                messageBoard);

            BusinessObjectActionReport <DataRepositoryActionStatus> report = manager.Create(messageBoardThread);

            Assert.AreEqual(DataRepositoryActionStatus.Success, report.Status);
            Assert.Greater(messageBoardThread.MessageBoardThreadId, 0);

            MessageBoardThread dsThread = manager.GetMessageBoardThread(messageBoardThread.MessageBoardThreadId);

            Assert.IsNotNull(dsThread);

            return(dsThread);
        }
コード例 #7
0
 internal static void PopulateWithRandomValues(MessageBoardThread record, DummyDataManager dtm, Random random)
 {
     record.IsApproved = DebugUtility.FlipCoin(random);
     record.IsLocked   = DebugUtility.FlipCoin(random);
 }
コード例 #8
0
 public BusinessObjectActionReport <DataRepositoryActionStatus> Delete(MessageBoardThread messageBoardThread)
 {
     return(_CMSThreadManager.Delete(messageBoardThread.CMSThread, false));
 }
コード例 #9
0
 public BusinessObjectActionReport <DataRepositoryActionStatus> Create(MessageBoardThread messageBoardThread, bool isEnabled)
 {
     return(_CMSThreadManager.Create(messageBoardThread.CMSThread));
 }
コード例 #10
0
        public void Test_CreateUpdateDeleteArticle()
        {
            IUserBasic         userBasic          = Test_WorkmateMembershipProvider.CreateUser(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.DummyDataManager);
            MessageBoard       messageBoard       = Test_MessageBoards.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.Random);
            ArticleGroup       articleGroup       = Test_ArticleGroups.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.Random);
            ArticleGroupThread articleGroupThread = Test_ArticleGroupThreads.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, articleGroup, this.Random);

            ArticleManager manager = new ArticleManager(this.DataStore);
            Article        record  = Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, userBasic
                                            , articleGroupThread, messageBoard, this.Random);

            MessageBoardThreadManager messageBoardThreadManager = new MessageBoardThreadManager(this.DataStore);

            Article recordToCompare;

            for (int i = 0; i < this.DefaultUpdateTestIterations; i++)
            {
                PopulateWithRandomValues(record, this.DummyDataManager, this.Random);
                recordToCompare = record;

                manager.Update(record);
                record = manager.GetArticle(record.ArticleId);

                string errors = string.Empty;
                // TODO (Roman): relax datetime comparisons
                Assert.IsTrue(DebugUtility.ArePropertyValuesEqual(record, recordToCompare, out errors), errors);
                Trace.WriteLine("Update test successfull.");
            }

            IArticleModel articleModel = manager.GetArticleModel(record.ArticleId);

            Assert.AreEqual(0, articleModel.TotalComments);

            #region messageboards
            MessageBoardThread messageBoardThread = messageBoardThreadManager.GetMessageBoardThread(articleModel.MessageBoardThreadId);
            Assert.IsNotNull(messageBoardThread);

            MessageManager messageManager = new MessageManager(this.DataStore);

            messageManager.Create(new Message(userBasic, messageBoardThread, "Test Message Subject 1", "Body1"));
            messageManager.Create(new Message(userBasic, messageBoardThread, "Test Message Subject 2", "Body2"));

            Message message = new Message(userBasic, messageBoardThread, "Test Message Subject 3", "Body3");
            messageManager.Create(message);

            articleModel = manager.GetArticleModel(record.ArticleId);
            Assert.AreEqual(3, articleModel.TotalComments);

            Assert.AreEqual(DataRepositoryActionStatus.Success, messageManager.Delete(message).Status);
            articleModel = manager.GetArticleModel(record.ArticleId);
            Assert.AreEqual(2, articleModel.TotalComments);
            #endregion

            #region attachments
            IArticleAttachmentModel articleAttachmentModel = AddAttachment(this.DataStore, this.Application.ApplicationId, articleModel, userBasic, this.Random);
            AddAttachment(this.DataStore, this.Application.ApplicationId, articleModel, userBasic, this.Random);

            DeleteAttachment(this.DataStore, articleModel, articleAttachmentModel.AttachmentId, this.Random);

            AddAttachment(this.DataStore, this.Application.ApplicationId, articleModel, userBasic, this.Random);
            AddAttachment(this.DataStore, this.Application.ApplicationId, articleModel, userBasic, this.Random);

            articleAttachmentModel = AddAttachment(this.DataStore, this.Application.ApplicationId, articleModel, userBasic, this.Random);
            DeleteAttachment(this.DataStore, articleModel, articleAttachmentModel.AttachmentId, this.Random);

            AddAttachment(this.DataStore, this.Application.ApplicationId, articleModel, userBasic, this.Random);
            #endregion

            #region contentnodelevels
            if (articleModel.ContentLevelNodeId.HasValue)
            {
                string newName = "Some Name" + this.Random.Next(10000, 100000);
                CMSContentLevelNodeManager contentLevelNodeManager = new CMSContentLevelNodeManager(this.DataStore);
                contentLevelNodeManager.RenameContentLevelNode(articleModel.ContentLevelNodeId.Value, newName);

                articleModel = manager.GetArticleModel(record.ArticleId);
                Assert.AreEqual(articleModel.ContentLevelNodes[articleModel.ContentLevelNodes.Count - 1], newName);
            }
            #endregion

            Delete(this.DataStore, record);
            Test_ArticleGroups.Delete(this.DataStore, articleGroup);

            Assert.IsNull(messageBoardThreadManager.GetMessageBoardThread(articleModel.MessageBoardThreadId));

            ArticleAttachmentManager articleAttachmentManager = new ArticleAttachmentManager(this.DataStore);
            Assert.IsEmpty(articleAttachmentManager.GetArticleAttachments(articleModel.ArticleId));
        }