示例#1
0
        public void AddUserToConversation()
        {
            IChatSystem  chatSystem         = new ServerChatSystem();
            IUser        user1              = chatSystem.AddNewUser("Jaś Kowalski");
            IUser        user2              = chatSystem.AddNewUser("Kasia Źdźbło");
            Conversation savedConversation1 = chatSystem.AddConversation("Konfa 1", user1, user2);
            IUser        user3              = chatSystem.AddNewUser("Pszczółka Maja");

            chatSystem.AddUserToConversation("Pszczółka Maja", savedConversation1.ID);
            var  collection1 = user3.Conversations;
            bool isThere     = false;

            foreach (var c in collection1)
            {
                if (c == savedConversation1)
                {
                    isThere = true;
                }
            }
            Assert.IsTrue(isThere);

            var collection2 = savedConversation1.Users;

            isThere = false;
            foreach (var u in collection2)
            {
                if (u == user3)
                {
                    isThere = true;
                }
            }
            Assert.IsTrue(isThere);
        }
示例#2
0
        public void GetConversationTest()
        {
            IChatSystem  chatSystem           = new ServerChatSystem();
            IUser        user1                = chatSystem.AddNewUser("Jaś Kowalski");
            IUser        user2                = chatSystem.AddNewUser("Kasia Źdźbło");
            Conversation savedConversation    = chatSystem.AddConversation("Konfa 1", user1, user2);
            Conversation returnedConversation = chatSystem.GetConversation(savedConversation.ID);

            Assert.IsTrue(returnedConversation == savedConversation);
        }
示例#3
0
        public void AddNewUserTest()
        {
            IChatSystem chatSystem = new ServerChatSystem();
            IUser       savedUser  = chatSystem.AddNewUser("Jaś Kowalski");

            Assert.IsNotNull(savedUser);

            savedUser = chatSystem.AddNewUser("Jaś Kowalski");
            Assert.IsNull(savedUser);
        }
        public void serializeTest()
        {
            IServerChatSystem chatSystem        = new ServerChatSystem();
            IUser             user1             = chatSystem.AddNewUser("Jaś Kowalski");
            IUser             user2             = chatSystem.AddNewUser("Kasia Źdźbło");
            Conversation      savedConversation = chatSystem.AddConversation("Konfa 1", user1, user2);
            IMessageContent   msgContent1       = new TextContent("Heeejoooo");
            IMessageContent   msgContent2       = new TextContent("Heeej");
            DateTime          datetime          = DateTime.Now;
            Message           sentMessage1      = chatSystem.SendMessage(savedConversation.ID, "Jaś Kowalski", -1, msgContent1, datetime);
            Message           sentMessage2      = chatSystem.SendMessage(savedConversation.ID, "Kasia Źdźbło", sentMessage1.ID, msgContent2, datetime);

            ClientChatSystem clientChatSystem        = new ClientChatSystem();
            IUser            userClient1             = clientChatSystem.AddNewUser("Jaś Kowalski");
            IUser            userClient2             = clientChatSystem.AddNewUser("Kasia Źdźbło");
            Conversation     savedClientConversation = clientChatSystem.AddConversation(savedConversation.Serialize(new ConcreteSerializer()), new ConcreteDeserializer());

            bool msg1Present     = false;
            bool msg2Present     = false;
            bool wrongMsgPresent = false;

            foreach (var message in savedClientConversation.Messages)
            {
                if (message.ID == sentMessage1.ID)
                {
                    msg1Present = true;
                    Assert.AreEqual(message.Author.Name, userClient1.Name);                     // There is no way serialization keeps references
                    Assert.AreSame(message.Author, savedClientConversation.Users.ToArray()[0]);
                    Assert.IsNull(message.Parent);
                    Assert.AreEqual(message.Content.getData(), sentMessage1.Content.getData());
                    Assert.AreEqual(message.SentTime, sentMessage1.SentTime);
                }
                else if (message.ID == sentMessage2.ID)
                {
                    msg2Present = true;
                    Assert.AreEqual(message.Author.Name, userClient2.Name);
                    Assert.IsNotNull(message.Parent.ID);                     //to be deleted when test passes
                    Assert.AreEqual(message.TargetId, sentMessage1.ID);      //to be deleted but this passes
                    Assert.AreEqual(message.Parent.ID, sentMessage1.ID);     //while this causes the test to fail
                    Assert.AreEqual(message.Content.getData(), sentMessage2.Content.getData());
                    Assert.AreEqual(message.SentTime, sentMessage2.SentTime);
                }
                else
                {
                    wrongMsgPresent = true;
                }
            }
            Assert.IsTrue(msg1Present);
            Assert.IsTrue(msg2Present);
            Assert.IsFalse(wrongMsgPresent);
        }
示例#5
0
        public void AddConversationTest()
        {
            IChatSystem  chatSystem         = new ServerChatSystem();
            IUser        user1              = chatSystem.AddNewUser("Jaś Kowalski");
            IUser        user2              = chatSystem.AddNewUser("Kasia Źdźbło");
            IUser        user3              = chatSystem.AddNewUser("Pszczółka Maja");
            Conversation savedConversation1 = chatSystem.AddConversation("Konfa 1", user1, user2, user3);

            Assert.IsNotNull(savedConversation1);
            Conversation savedConversation2 = chatSystem.AddConversation("Konfa 1", user1, user2, user3);

            Assert.IsNotNull(savedConversation2);
            Assert.AreNotEqual(savedConversation1.ID, savedConversation2.ID);
        }
        public void getUpdatesToUserTest()
        {
            IServerChatSystem chatSystem         = new ServerChatSystem();
            IUser             user1              = chatSystem.AddNewUser("Jaś Kowalski");
            IUser             user2              = chatSystem.AddNewUser("Kasia Źdźbło");
            IUser             user3              = chatSystem.AddNewUser("Roch Kowal");
            Conversation      savedConversation  = chatSystem.AddConversation("Konfa 1", user1, user2);
            Conversation      savedConversation2 = chatSystem.AddConversation("Konfa 2", user1, user3);
            IMessageContent   msgContent1        = new TextContent("Heeejoooo");
            IMessageContent   msgContent2        = new TextContent("Heeej");
            DateTime          datetime           = DateTime.Now;
            Message           sentMessage1       = chatSystem.SendMessage(savedConversation.ID, "Jaś Kowalski", -1, msgContent1, datetime);
            Message           sentMessage2       = chatSystem.SendMessage(savedConversation2.ID, "Jaś Kowalski", -1, msgContent2, datetime);
            UserUpdates       updates            = chatSystem.getUpdatesToUser("Kasia Źdźbło", datetime - TimeSpan.FromSeconds(3));
            bool containsConversation            = false;
            bool containsWrongConversation       = false;

            foreach (var conversation in updates)
            {
                if (conversation.ID == savedConversation.ID && conversation.Name == savedConversation.Name)
                {
                    containsConversation = true;
                    bool containsMessage      = false;
                    bool containsWrongMessage = false;
                    foreach (var message in conversation.Messages)
                    {
                        if (message.ID == sentMessage1.ID)
                        {
                            containsMessage = true;
                            Assert.IsTrue(message.Author.Name == sentMessage1.Author.Name);
                            Assert.IsNull(message.Parent);
                            Assert.IsTrue(message.Content.getData() == sentMessage1.Content.getData());
                            Assert.IsTrue(message.SentTime == sentMessage1.SentTime);
                        }
                        else
                        {
                            containsWrongMessage = true;
                        }
                    }
                    Assert.IsTrue(containsMessage);
                    Assert.IsFalse(containsWrongMessage);
                }
                else
                {
                    containsWrongConversation = true;
                }
            }
            Assert.IsTrue(containsConversation);
            Assert.IsFalse(containsWrongConversation);
        }
示例#7
0
        public void LeaveConversation()
        {
            IChatSystem  chatSystem         = new ServerChatSystem();
            IUser        user1              = chatSystem.AddNewUser("Jaś Kowalski");
            IUser        user2              = chatSystem.AddNewUser("Kasia Źdźbło");
            Conversation savedConversation1 = chatSystem.AddConversation("Konfa 1", user1, user2);

            chatSystem.LeaveConversation("Kasia Źdźbło", savedConversation1.ID);
            var users = savedConversation1.Users;

            foreach (var u in users)
            {
                Assert.IsFalse(u == user2);
            }
            var conversations = user2.Conversations;

            foreach (var c in conversations)
            {
                Assert.IsFalse(c == savedConversation1);
            }
        }
示例#8
0
        public void applyUpdatesTest()
        {
            // Creating 'server' chat system
            IServerChatSystem chatSystem = new ServerChatSystem();
            // Creating two users
            IUser user1 = chatSystem.AddNewUser("Jaś Kowalski");
            IUser user2 = chatSystem.AddNewUser("Kasia Źdźbło");
            // Creating a conversation with those users
            Conversation savedConversation = chatSystem.AddConversation("Konfa 1", user1, user2);
            // Sending a message
            IMessageContent msgContent1  = new TextContent("Heeejoooo");
            DateTime        datetime     = DateTime.Now;
            Message         sentMessage1 = chatSystem.SendMessage(savedConversation.ID, "Jaś Kowalski", Guid.Empty, msgContent1, datetime);
            // Creating client chat system
            IClientChatSystem clientChatSystem = new ClientChatSystem();

            clientChatSystem.AddNewUser("Kasia Źdźbło");
            // Applying updates
            clientChatSystem.applyUpdates(chatSystem.getUpdatesToUser("Kasia Źdźbło", datetime - TimeSpan.FromSeconds(3)));
            // Checks
            bool conversationPresent = false;

            foreach (var conversation in clientChatSystem.GetUser("Kasia Źdźbło").Conversations)
            {
                if (conversation.ID == savedConversation.ID)
                {
                    conversationPresent = true;
                    bool messagePresent = false;
                    foreach (var message in conversation.Messages)
                    {
                        if (message.ID == sentMessage1.ID && message.Content.getData() == sentMessage1.Content.getData())
                        {
                            messagePresent = true;
                        }
                    }
                    Assert.IsTrue(messagePresent);
                }
            }
            Assert.IsTrue(conversationPresent);
        }
示例#9
0
        public void sendMessageTest()
        {
            IChatSystem     chatSystem        = new ServerChatSystem();
            IUser           user1             = chatSystem.AddNewUser("Jaś Kowalski");
            IUser           user2             = chatSystem.AddNewUser("Kasia Źdźbło");
            Conversation    savedConversation = chatSystem.AddConversation("Konfa 1", user1, user2);
            IMessageContent msgContent1       = new TextContent("Heeejoooo");
            DateTime        datetime          = DateTime.Now;
            Message         sentMessage1      = chatSystem.SendMessage(savedConversation.ID, "Jaś Kowalski", Guid.Empty, msgContent1, datetime);

            Assert.IsNotNull(sentMessage1);
            Assert.IsNull(sentMessage1.Parent);
            Assert.IsTrue(sentMessage1.Author == user1);
            Assert.IsTrue(sentMessage1.Content == msgContent1);
            Assert.IsTrue(sentMessage1.SentTime == datetime);
            IMessageContent msgContent2  = new TextContent("Cześć");
            Message         sentMessage2 = chatSystem.SendMessage(savedConversation.ID, "Kasia Źdźbło", sentMessage1.ID, msgContent2, datetime);

            Assert.IsNotNull(sentMessage2);
            Assert.IsTrue(sentMessage2.Parent == sentMessage1);
            Assert.IsTrue(sentMessage2.Author == user2);
            Assert.IsTrue(sentMessage2.Content == msgContent2);
            Assert.IsTrue(sentMessage2.SentTime == datetime);
        }
示例#10
0
        public void getConversationsTest()
        {
            IChatSystem  chatSystem         = new ServerChatSystem();
            IUser        user1              = chatSystem.AddNewUser("Jaś Kowalski");
            IUser        user2              = chatSystem.AddNewUser("Kasia Źdźbło");
            IUser        user3              = chatSystem.AddNewUser("Claus Somersby");
            IUser        user4              = chatSystem.AddNewUser("Hania Kot");
            Conversation savedConversation1 = chatSystem.AddConversation("Konfa 1", user1, user2);
            Conversation savedConversation2 = chatSystem.AddConversation("Konfa 2", user2, user3);

            bool hasConversation1     = false;
            bool hasConversation2     = false;
            bool hasWrongConversation = false;

            foreach (var conversation in user1.Conversations)
            {
                if (conversation == savedConversation1)
                {
                    hasConversation1 = true;
                }
                else
                {
                    hasWrongConversation = true;
                }
            }
            Assert.IsTrue(hasConversation1);
            Assert.IsFalse(hasWrongConversation);
            hasConversation1     = false;
            hasConversation2     = false;
            hasWrongConversation = false;
            foreach (var conversation in user2.Conversations)
            {
                if (conversation == savedConversation1)
                {
                    hasConversation1 = true;
                }
                else if (conversation == savedConversation2)
                {
                    hasConversation2 = true;
                }
                else
                {
                    hasWrongConversation = true;
                }
            }
            Assert.IsTrue(hasConversation1);
            Assert.IsTrue(hasConversation2);
            Assert.IsFalse(hasWrongConversation);
            hasConversation1     = false;
            hasConversation2     = false;
            hasWrongConversation = false;
            foreach (var conversation in user3.Conversations)
            {
                if (conversation == savedConversation2)
                {
                    hasConversation2 = true;
                }
                else
                {
                    hasWrongConversation = true;
                }
            }
            Assert.IsTrue(hasConversation2);
            Assert.IsFalse(hasWrongConversation);
            hasConversation1     = false;
            hasConversation2     = false;
            hasWrongConversation = false;
            foreach (var conversation in user4.Conversations)
            {
                hasWrongConversation = true;
            }
            Assert.IsFalse(hasWrongConversation);
        }
        public void getConversationsOfUserTest()
        {
            IServerChatSystem chatSystem         = new ServerChatSystem();
            IUser             user1              = chatSystem.AddNewUser("Jaś Kowalski");
            IUser             user2              = chatSystem.AddNewUser("Kasia Źdźbło");
            Conversation      savedConversation1 = chatSystem.AddConversation("Konfa 1", user1, user2);
            IUser             user3              = chatSystem.AddNewUser("Johannes von Neustadt");
            Conversation      savedConversation2 = chatSystem.AddConversation("Ziomki", user1, user3);
            bool hasConversation1     = false;
            bool hasConversation2     = false;
            bool hasWrongConversation = false;

            foreach (var conversation in chatSystem.getConversationsOfUser("Johannes von Neustadt"))
            {
                if (conversation == savedConversation2)
                {
                    hasConversation2 = true;
                }
                else
                {
                    hasWrongConversation = true;
                }
            }
            Assert.IsTrue(hasConversation2);
            Assert.IsFalse(hasWrongConversation);
            hasConversation1     = false;
            hasConversation2     = false;
            hasWrongConversation = false;
            foreach (var conversation in chatSystem.getConversationsOfUser("Jaś Kowalski"))
            {
                if (conversation == savedConversation1)
                {
                    hasConversation1 = true;
                }
                else if (conversation == savedConversation2)
                {
                    hasConversation2 = true;
                }
                else
                {
                    hasWrongConversation = true;
                }
            }
            Assert.IsTrue(hasConversation1);
            Assert.IsTrue(hasConversation2);
            Assert.IsFalse(hasWrongConversation);
            hasConversation1     = false;
            hasConversation2     = false;
            hasWrongConversation = false;
            foreach (var conversation in chatSystem.getConversationsOfUser("Kasia Źdźbło"))
            {
                if (conversation == savedConversation1)
                {
                    hasConversation1 = true;
                }
                else
                {
                    hasWrongConversation = true;
                }
            }
            Assert.IsTrue(hasConversation1);
            Assert.IsFalse(hasWrongConversation);
        }