public void ShouldGetChatsOfUser()
        {
            //arrange
            var user = new User
            {
                Name    = "testUser",
                Picture = new byte[] {}
            };
            var login    = "******";
            var password = "******";

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser     = userRepository.Create(user, login, password);

            _tempUsers.Add(resultUser.Id);
            var chatRepository = new ChatsRepository(ConnectionString);
            var chatResult     = chatRepository.Create("chatTitle", new List <Guid>()
            {
                resultUser.Id
            });

            _tempChats.Add(chatResult.Id);
            var chats = userRepository.GetUserChats(resultUser.Id);

            //asserts
            Assert.AreEqual(chats.Count(), 1);
        }
示例#2
0
        public void ShouldSendAndDeleteMessage()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] {}
            };
            var    login    = "******";
            var    password = "******";
            var    title    = "chatTitle";
            var    pic      = new byte[] {};
            string msg      = "TestText of msg";

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser     = userRepository.Create(user, login, password);
            var userIds        = new List <Guid> {
                resultUser.Id
            };

            _tempUsers.AddRange(userIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var resultChat     = chatRepository.Create(title, userIds, pic);

            _tempChats.Add(resultChat.Id);
            var messageRepository = new MessagesRepository(ConnectionString);
            var resultMsg         = messageRepository.Send(msg, resultUser.Id, resultChat.Id);

            messageRepository.Delete(resultMsg.Id);

            //asserts
            Assert.AreEqual(false, messageRepository.MessageExists(resultMsg.Id));
            Assert.AreEqual(false, chatRepository.GetChatMessages(resultChat.Id).Any(m => m.Id == resultMsg.Id));
        }
        public void ShouldGetChat()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] { }
            };
            var login    = "******";
            var password = "******";
            var title    = "chatTitle";
            var pic      = new byte[] {};

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser1    = userRepository.Create(user, login, password);
            var resultUser2    = userRepository.Create(user, login + "1", password);
            var userIds        = new List <Guid> {
                resultUser1.Id, resultUser2.Id
            };

            _tempUsers.AddRange(userIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var tempChat       = chatRepository.Create(title, userIds, pic);
            var resultChat     = chatRepository.Get(tempChat.Id);

            _tempChats.Add(resultChat.Id);

            //asserts
            Assert.AreEqual(resultChat.Title, title);
            Assert.AreEqual(resultChat.Members.Count(), 2);
            Assert.AreEqual(resultChat.Members.Any(u => u.Id == resultUser1.Id), true);
            Assert.AreEqual(resultChat.Members.Any(u => u.Id == resultUser2.Id), true);
        }
        public void ShouldGetChatMembers()
        {
            _tempUsers1.Clear();
            var user1 = new User
            {
                Name     = Guid.NewGuid().ToString(),
                Password = "******"
            };
            var user2 = new User
            {
                Name     = Guid.NewGuid().ToString(),
                Password = "******"
            };
            UsersRepository userRepository = new UsersRepository(_connectionString);

            user1 = userRepository.Create(user1);
            user2 = userRepository.Create(user2);
            _tempUsers1.Add(user1);
            _tempUsers1.Add(user2);
            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);

            var         resultCreate = chatRepository.Create(new[] { user1.Id, user2.Id }, "NewChat");
            List <User> resultUsers  = chatRepository.GetChatMembers(resultCreate.Id).ToList();

            Assert.AreEqual(_tempUsers1.OrderBy(u => u.Id).First().Id, resultCreate.Members.OrderBy(u => u.Id).First().Id);
        }
        public void ShouldCreateAndDeleteChat()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] { }
            };
            var login    = "******";
            var password = "******";
            var title    = "chatTitle";

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser1    = userRepository.Create(user, login, password);
            var resultUser2    = userRepository.Create(user, login + "1", password);
            var userIds        = new List <Guid> {
                resultUser1.Id, resultUser2.Id
            };

            _tempUsers.AddRange(userIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var resultChat     = chatRepository.Create(title, userIds);

            chatRepository.Delete(resultChat.Id);

            //asserts
            Assert.AreEqual(chatRepository.ChatExists(resultChat.Id), false);
        }
        public void ShouldChangeChatPicture()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] { }
            };
            var login    = "******";
            var password = "******";
            var title    = "chatTitle";
            var pic      = new byte[] { };
            var newPic   = new byte[] { };

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser1    = userRepository.Create(user, login, password);
            var resultUser2    = userRepository.Create(user, login + "1", password);
            var userIds        = new List <Guid> {
                resultUser1.Id, resultUser2.Id
            };

            _tempUsers.AddRange(userIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var resultChat     = chatRepository.Create(title, userIds, pic);

            _tempChats.Add(resultChat.Id);
            chatRepository.ChangePicture(resultChat.Id, newPic);
            resultChat = chatRepository.Get(resultChat.Id);

            //asserts
            Assert.AreEqual(newPic, resultChat.Picture);
        }
示例#7
0
        public void ShouldStartChatWithUser()
        {
            //arrange
            var user = new User
            {
                Name     = "testUser",
                Avatar   = Encoding.UTF8.GetBytes("ava"),
                Password = "******"
            };

            const string chatName = "чатик";

            //act
            var usersRepository = new UsersRepository(ConnectionString);
            var result          = usersRepository.Create(user);

            _tempUsers.Add(result.Id);

            var chatRepository = new ChatsRepository(ConnectionString, usersRepository);
            var chat           = chatRepository.Create(new[] { user.Id }, chatName);
            var userChats      = chatRepository.GetUserChats(user.Id);

            //asserts
            Assert.AreEqual(chatName, chat.Name);
            Assert.AreEqual(user.Id, chat.Members.Single().Id);
            Assert.AreEqual(chat.Id, userChats.Single().Id);
            Assert.AreEqual(chat.Name, userChats.Single().Name);
        }
        public void ShouldGetUserChats()
        {
            User user1 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());
            User user2 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());

            UsersRepository userRepository = new UsersRepository(_connectionString);
            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);

            var resultCreate = chatRepository.Create(new[] { user1.Id, user2.Id }, "NewChat");
            var resultChats  = chatRepository.GetUserChats(user1.Id);

            Assert.AreEqual("NewChat", resultChats.First().Name);
        }
        public void ShouldChangeName()
        {
            User user1 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());
            User user2 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());

            UsersRepository userRepository = new UsersRepository(_connectionString);
            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);

            var resultCreate = chatRepository.Create(new[] { user1.Id, user2.Id }, "NewChat");

            chatRepository.ChangeNameOfChat(resultCreate.Id, "HelloWorldChat");
            var resultGet = chatRepository.GetChat(resultCreate.Id);

            Assert.AreEqual("HelloWorldChat", resultGet.Name);
        }
示例#10
0
        public void ShouldSearchMessages()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] {}
            };
            var    login    = "******";
            var    password = "******";
            var    title    = "chatTitle";
            var    pic      = new byte[] {};
            string msg1     = "TestText of msg";
            string msg2     = "TestText of nothing";
            string msg3     = "TestText of msg2";

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser1    = userRepository.Create(user, login, password);
            var resultUser2    = userRepository.Create(user, login + "1", password);
            var userIds        = new List <Guid> {
                resultUser1.Id, resultUser2.Id
            };

            _tempUsers.AddRange(userIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var resultChat     = chatRepository.Create(title, userIds, pic);

            _tempChats.Add(resultChat.Id);
            var messageRepository = new MessagesRepository(ConnectionString);
            var resultMsg1        = messageRepository.Send(msg1, resultUser1.Id, resultChat.Id);

            _tempMessages.Add(resultMsg1.Id);
            var resultMsg2 = messageRepository.Send(msg2, resultUser1.Id, resultChat.Id);

            _tempMessages.Add(resultMsg2.Id);
            var resultMsg3 = messageRepository.Send(msg3, resultUser2.Id, resultChat.Id);

            _tempMessages.Add(resultMsg3.Id);
            var resultMsgs = messageRepository.SearchMessages(resultUser2.Id, "msg");

            //asserts
            Assert.AreEqual(2, resultMsgs.Count());
            Assert.AreEqual(true, resultMsgs.Any(m => m.Id == resultMsg1.Id));
            Assert.AreEqual(false, resultMsgs.Any(m => m.Id == resultMsg2.Id));
            Assert.AreEqual(true, resultMsgs.Any(m => m.Id == resultMsg3.Id));
        }
示例#11
0
        public void ShouldDeleteChat()
        {
            _tempUsers.Clear();
            _tempUsers1.Clear();
            User user1 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());
            User user2 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());

            UsersRepository userRepository = new UsersRepository(_connectionString);

            _tempUsers.Add(user1.Id);
            _tempUsers.Add(user2.Id);
            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);
            var             result         = chatRepository.Create(_tempUsers, "NewChat");

            chatRepository.Delete(result.Id, user1.Id);
            chatRepository.GetChat(result.Id);
        }
示例#12
0
        internal static Chat Chat(int usersAmount = 2)
        {
            var members = new List <ChatMember>();

            for (int i = 0; i < usersAmount; i++)
            {
                members.Add(new ChatMember {
                    UserID = User().ID
                });
            }

            Chat chat = new Chat
            {
                Name    = "TestChat",
                Members = members
            };

            return(ChatsRepository.Create(chat));
        }
示例#13
0
        public void ShouldGetMessageAttachs()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] {}
            };
            var login    = "******";
            var password = "******";
            var title    = "chatTitle";
            var pic      = new byte[] {};
            var atch     = new List <string>()
            {
                "pic.jpg", "text.txt"
            };
            string msg = "TestText of msg";

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser1    = userRepository.Create(user, login, password);
            var resultUser2    = userRepository.Create(user, login + "1", password);
            var userIds        = new List <Guid> {
                resultUser1.Id, resultUser2.Id
            };

            _tempUsers.AddRange(userIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var resultChat     = chatRepository.Create(title, userIds, pic);

            _tempChats.Add(resultChat.Id);
            var messageRepository = new MessagesRepository(ConnectionString);
            var resultMsg         = messageRepository.Send(msg, resultUser1.Id, resultChat.Id, atch);
            var resultAttachs     = messageRepository.GetMessageAttachs(resultMsg.Id);

            _tempMessages.Add(resultMsg.Id);

            //asserts
            Assert.AreEqual(2, resultAttachs.Count());

            /*Assert.AreEqual(true, resultAttachs.Any(a => a.Path == atch[0] && a.Sender.Id == resultUser1.Id));
            *  Assert.AreEqual(true, resultAttachs.Any(a => a.Path == atch[1] && a.Sender.Id == resultUser1.Id));*/
        }
示例#14
0
        public void ShouldAddMembers()
        {
            _tempUsers.Clear();
            User user1 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());
            User user2 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());
            User user3 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());

            _tempUsers.Add(user3.Id);

            UsersRepository userRepository = new UsersRepository(_connectionString);
            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);

            var resultCreate = chatRepository.Create(new[] { user1.Id, user2.Id }, "NewChat");

            chatRepository.AddMembers(_tempUsers, resultCreate.Id, user2.Id);
            var result = chatRepository.GetChatMembers(resultCreate.Id);

            Assert.AreEqual(3, result.Count());
        }
        public void ShouldGetChatMessages()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] { }
            };
            var    login    = "******";
            var    password = "******";
            var    title    = "chatTitle";
            var    pic      = new byte[] {};
            string msg1     = "TestText of msg";
            string msg2     = "TestText of msg2";

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser1    = userRepository.Create(user, login, password);
            var resultUser2    = userRepository.Create(user, login + "1", password);
            var userIds        = new List <Guid> {
                resultUser1.Id, resultUser2.Id
            };

            _tempUsers.AddRange(userIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var resultChat     = chatRepository.Create(title, userIds, pic);

            _tempChats.Add(resultChat.Id);
            var messageRepository = new MessagesRepository(ConnectionString);
            var resultMsg1        = messageRepository.Send(msg1, resultUser1.Id, resultChat.Id);
            var resultMsg2        = messageRepository.Send(msg2, resultUser2.Id, resultChat.Id);
            var resultMessages    = chatRepository.GetChatMessages(resultChat.Id);

            _tempMessages.AddRange(new List <Guid> {
                resultMsg1.Id, resultMsg2.Id
            });

            //asserts
            Assert.AreEqual(resultMessages.Any(a => a.Text == msg1 && a.Sender.Id == resultUser1.Id), true);
            Assert.AreEqual(resultMessages.Any(a => a.Text == msg2 && a.Sender.Id == resultUser2.Id), true);
        }
示例#16
0
        public void ShouldCreateChat()
        {
            _tempUsers.Clear();
            _tempUsers1.Clear();
            User user1 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());
            User user2 = Datalayer.Sql.Tests.Helper.CreateUser(_connectionString, Datalayer.Sql.Tests.Helper.NewUser());

            UsersRepository userRepository = new UsersRepository(_connectionString);

            _tempUsers.Add(user1.Id);
            _tempUsers.Add(user2.Id);

            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);
            var             result         = chatRepository.Create(_tempUsers, "NewChat");

            _tempUsers1.Add(userRepository.Get(_tempUsers[0]));
            _tempUsers1.Add(userRepository.Get(_tempUsers[1]));

            Assert.AreEqual("NewChat", result.Name);
            Assert.AreEqual(_tempUsers1.OrderBy(u => u.Id).First().Id, result.Members.OrderBy(u => u.Id).First().Id);
            Assert.AreEqual(_tempUsers1.OrderBy(u => u.Id).Last().Id, result.Members.OrderBy(u => u.Id).Last().Id);
        }
        public void ShouldSend()
        {
            User user1 = Helper.CreateUser(_connectionString, Helper.NewUser());
            User user2 = Helper.CreateUser(_connectionString, Helper.NewUser());

            UsersRepository userRepository = new UsersRepository(_connectionString);
            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);

            var resultCreate = chatRepository.Create(new[] { user1.Id, user2.Id }, "HellowChat");

            Message message = new Message
            {
                Text   = "HelloWorld",
                UserId = user1.Id,
                ChatId = resultCreate.Id,
            };
            MessagesRepository messagesRepository = new MessagesRepository(_connectionString, userRepository, chatRepository);
            var result = messagesRepository.Send(message.UserId, message.ChatId, message.Text, null);

            Assert.AreEqual(message.Text, result.Text);
            Assert.IsNotNull(result.Id);
            Assert.IsNotNull(result.Date);
        }
        public void ShouldAddMembersToChat()
        {
            //arrange
            var user = new User
            {
                Name    = "testCharUser",
                Picture = new byte[] { }
            };
            var login    = "******";
            var password = "******";
            var title    = "chatTitle";

            //act
            var userRepository = new UsersRepository(ConnectionString);
            var resultUser1    = userRepository.Create(user, login, password);
            var resultUser2    = userRepository.Create(user, login + "1", password);
            var resultUser3    = userRepository.Create(user, login + "2", password);
            var userIds        = new List <Guid> {
                resultUser1.Id
            };
            var newUserIds = new List <Guid> {
                resultUser2.Id, resultUser3.Id
            };

            _tempUsers.AddRange(userIds);
            _tempUsers.AddRange(newUserIds);
            var chatRepository = new ChatsRepository(ConnectionString);
            var resultChat     = chatRepository.Create(title, userIds);

            _tempChats.Add(resultChat.Id);
            chatRepository.AddMembers(resultChat.Id, newUserIds);
            var chatMembers = chatRepository.GetChatUsers(resultChat.Id);

            //asserts
            Assert.AreEqual(true, chatMembers.Any(m => m.Id == resultUser2.Id));
            Assert.AreEqual(true, chatMembers.Any(m => m.Id == resultUser3.Id));
        }
        public void SholdGetAmount()
        {
            User user1 = Helper.CreateUser(_connectionString, Helper.NewUser());
            User user2 = Helper.CreateUser(_connectionString, Helper.NewUser());

            UsersRepository userRepository = new UsersRepository(_connectionString);
            ChatsRepository chatRepository = new ChatsRepository(_connectionString, userRepository);

            var resultCreate = chatRepository.Create(new[] { user1.Id, user2.Id }, "NewChat");

            Message message1 = new Message
            {
                Text   = "message",
                UserId = user1.Id,
                ChatId = resultCreate.Id,
            };
            Message message2 = new Message
            {
                Text   = "message2",
                UserId = user2.Id,
                ChatId = resultCreate.Id,
            };
            Message message3 = new Message
            {
                Text   = "message3",
                UserId = user1.Id,
                ChatId = resultCreate.Id,
            };
            MessagesRepository messagesRepository = new MessagesRepository(_connectionString, userRepository, chatRepository);

            message1 = messagesRepository.Send(message1.UserId, message1.ChatId, message1.Text, null);
            message2 = messagesRepository.Send(message2.UserId, message2.ChatId, message2.Text, null);
            message3 = messagesRepository.Send(message3.UserId, message3.ChatId, message3.Text, null);
            var result = messagesRepository.GetAmountOfMessages(resultCreate.Id, 1, 1);

            Assert.AreEqual(1, result.Count());
        }
示例#20
0
 public Chat Create([FromBody] Chat chat)
 => _chatsRepository.Create(chat);
示例#21
0
 public object Create([FromBody] Chat chat)
 {
     return(chatsRepository.Create(chat.Members.Select(u => u.Id).ToArray(), chat.Name));
 }