예제 #1
0
        public void ShouldDeleteMessage()
        {
            var profile = new Profile
            {
                Id       = Guid.NewGuid(),
                Login    = "******",
                Avatar   = Guid.NewGuid(),
                Password = "******",
                Name     = "odmin",
                Surname  = "odmin"
            };

            const string chatName = "SendChat";

            var usersRepository = new ProfilesRepository(Constants.Constants.ConnectionString);
            var result          = usersRepository.CreateProfile(profile);

            _tempUsers.Add(result.Id);

            var chatRepository = new ChatsRepository(Constants.Constants.ConnectionString, usersRepository);

            var chatBefore = new Chat
            {
                ChatId      = Guid.NewGuid(),
                ChatName    = chatName,
                ChatMembers = new List <Guid>(new[] { profile.Id })
            };

            var chat = chatRepository.CreateChat(chatBefore);

            _chats.Add(chat.ChatId);

            var messageRepository = new MessagesRepository(Constants.Constants.ConnectionString);

            var message = new Message
            {
                MessageId     = Guid.NewGuid(),
                ProfileId     = profile.Id,
                ChatId        = chat.ChatId,
                MessageText   = "Hello, world!",
                Date          = DateTime.Now,
                TimeToDestroy = 0,
                Attachment    = Guid.Empty
            };

            _messages.Add(message.MessageId);

            messageRepository.CreateMessage(message);

            messageRepository.DeleteMessage(message.MessageId);

            try
            {
                messageRepository.GetMessage(message.MessageId);
            }
            catch (Exception)
            {
                return;
            }
        }
        public void ShouldGetMessage()
        {
            //arrange
            var usersRepository    = new UsersRepository(_connectionString);
            var chatsRepository    = new ChatsRepository(_connectionString, usersRepository);
            var messagesRepository = new MessagesRepository(_connectionString, usersRepository, chatsRepository);
            var createdMessage     = messagesRepository.CreateMessage(_message);

            _tmpMessages.Add(createdMessage.Id);

            //act
            var gottenMessage = messagesRepository.GetMessage(createdMessage.Id);

            //assert
            Assert.AreEqual(createdMessage.Text, gottenMessage.Text);
            Assert.AreEqual(createdMessage.IsSelfDestructing, gottenMessage.IsSelfDestructing);
            Assert.AreEqual(createdMessage.Date.ToString(CultureInfo.InvariantCulture), gottenMessage.Date.ToString(CultureInfo.InvariantCulture));
            if (createdMessage.Attachments.ElementAt(0).Length ==
                gottenMessage.Attachments.ElementAt(0).Length)
            {
                Assert.IsTrue(createdMessage.Attachments.ElementAt(0).
                              SequenceEqual(gottenMessage.Attachments.ElementAt(0)));
                Assert.IsTrue(createdMessage.Attachments.ElementAt(1).
                              SequenceEqual(gottenMessage.Attachments.ElementAt(1)));
            }
            else
            {
                Assert.IsTrue(createdMessage.Attachments.ElementAt(0).
                              SequenceEqual(gottenMessage.Attachments.ElementAt(1)));
                Assert.IsTrue(createdMessage.Attachments.ElementAt(1).
                              SequenceEqual(gottenMessage.Attachments.ElementAt(0)));
            }
        }
예제 #3
0
        internal string PrintGraph()
        {
            string result     = string.Empty;
            int    startPoiId = Solver.Instance.WorkingConfiguration.StartingPointId;

            BreadthFirstSearch(startPoiId,
                               (node, isVisited) => node.IsVisited = isVisited,
                               (node) => node.IsVisited,
                               node => {
                string message = MessagesRepository.GetMessage(MessageCode.CMGraphNodeToString, node.Entity.Name, node.ArrivalTime.ToString("HH:mm"));
                result        += $"\t({node.Entity.Id} - {message})";
            },
                               edge =>
            {
                if (edge.Entity.PointTo.Id != startPoiId)
                {
                    result += "\n";
                }
                else
                {
                    InterestPointWorker startPoi = this[startPoiId];
                    string message = MessagesRepository.GetMessage(MessageCode.CMGraphNodeToString, startPoi.Entity.Name, TimeSpent.ToString("HH:mm"));
                    result        += $"\n\t({startPoi.Entity.Id} - {message})";
                }
            });
            result += "\n";

            Nodes.ToList().ForEach(node => node.IsVisited = default);
        public void ShouldDeleteMessage()
        {
            //arrange
            var usersRepository    = new UsersRepository(_connectionString);
            var chatsRepository    = new ChatsRepository(_connectionString, usersRepository);
            var messagesRepository = new MessagesRepository(_connectionString, usersRepository, chatsRepository);
            var message            = messagesRepository.CreateMessage(_message);

            //act
            messagesRepository.DeleteMessage(message.Id);

            //assert
            Assert.ThrowsException <ArgumentException>(() => messagesRepository.GetMessage(message.Id));
        }