Exemple #1
0
        public async void SavesChangesOnTryAddChat()
        {
            var chat       = ChatBuilder.Any();
            var repository = CreateRepository();

            await repository.TryAddChatAndSaveAsync(chat);

            _appDbContextMock.Verify(context => context.SaveChanges(), Times.Once);
        }
Exemple #2
0
        public async void TriesAddChatToRepository()
        {
            var chat       = ChatBuilder.Any();
            var repository = CreateRepository();

            var result = await repository.TryAddChatAndSaveAsync(chat);

            result.Should().BeTrue();
        }
Exemple #3
0
        public async void ReturnsFalseWhenExceptionHappenedOnTryAddChatAndSaveAsync()
        {
            _appDbContextMock.Setup(context => context.SaveChanges())
            .Throws <Exception>();
            var chat       = ChatBuilder.Any();
            var repository = CreateRepository();

            var result = await repository.TryAddChatAndSaveAsync(chat);

            result.Should().BeFalse();
        }
Exemple #4
0
        public void SavesChangesOnTryRemoveChatAndSave()
        {
            var chat = new ChatBuilder {
                TelegramChatId = 123
            }.Build();

            _chats.Add(chat);
            var repository = CreateRepository();

            repository.TryRemoveChatAndSave(chat);

            _appDbContextMock.Verify(context => context.SaveChanges(), Times.Once);
        }
Exemple #5
0
        public void RemovesChatFromRepository()
        {
            var chat = new ChatBuilder {
                TelegramChatId = 123
            }.Build();

            _chats.Add(chat);
            var repository = CreateRepository();

            var result = repository.TryRemoveChatAndSave(chat);

            result.Should().BeTrue();
        }
Exemple #6
0
        public void DoesNotThrowExceptionWhenCannotFindDeveloperByUserName()
        {
            var chat = new ChatBuilder {
                TelegramChatId = 444
            }.Build();

            _chats.Add(chat);
            var repository = CreateRepository();

            Action getChatByTelegramChatIdAction = () => repository.GetChatByTelegramChatIdOrDefault(222);

            getChatByTelegramChatIdAction.Should().NotThrow <InvalidOperationException>();
        }
Exemple #7
0
        public void GetsChatByTelegramChatId()
        {
            var chat = new ChatBuilder {
                TelegramChatId = 444
            }.Build();

            _chats.Add(chat);
            var repository = CreateRepository();

            var actualChat = repository.GetChatByTelegramChatIdOrDefault(444);

            actualChat.Should().Be(chat);
        }
Exemple #8
0
        public void DoesNotThrowExceptionWhenOneHappens()
        {
            const int telegramChatId = 123123;
            var       chat = new ChatBuilder {
                TelegramChatId = telegramChatId
            }.Build();

            _chats.Add(chat);
            var todayDate = DateTime.Today;

            _reviewByDateProviderMock.Setup(provider => provider.GetReview(todayDate, Team.Desktop))
            .ThrowsAsync(new NullReferenceException());
            var service = CreateService();

            Action action = () => service.SendMessage(todayDate);

            action.Should().NotThrow();
        }
Exemple #9
0
        public void RemovesChatWhenCouldNotSendMessage()
        {
            const int telegramChatId = 123123;
            var       chat = new ChatBuilder {
                TelegramChatId = telegramChatId
            }.Build();

            _chats.Add(chat);
            var todayDate = DateTime.Today;

            _reviewByDateProviderMock.Setup(provider => provider.GetReview(todayDate, Team.Desktop))
            .ReturnsAsync(new Review {
                DateTime = todayDate, Developer = DeveloperBuilder.Any()
            });
            _sendMessageServiceMock.Setup(s => s.TrySendMessageAsync(telegramChatId, It.IsAny <string>()))
            .ReturnsAsync(false);
            var service = CreateService();

            service.SendMessage(todayDate);

            _chatRepositoryMock.Verify(repository => repository.TryRemoveChatAndSave(chat), Times.Once);
        }
Exemple #10
0
        public void WriteMetadata(EntityMetadata dt)
        {
            WriteByte(dt.Index);
            object o = dt.Value;

            switch (dt.Type)
            {
            case EntityMetadataType.Byte:
                WriteByte((byte)o);
                break;

            case EntityMetadataType.VarInt:
                WriteVarInt((VarInt)o);
                break;

            case EntityMetadataType.Float:
                WriteFloat((float)o);
                break;

            case EntityMetadataType.String:
                WriteString((string)o);
                break;

            case EntityMetadataType.Chat:
                ChatBuilder b = (ChatBuilder)o;
                WriteString(b.Generate());
                break;

            case EntityMetadataType.OptChat:
                OptChat optC = (OptChat)o;
                if (optC.Enabled)
                {
                    WriteString(optC.Chat.Generate());
                }

                break;

            case EntityMetadataType.Slot:
                Slot  slot = (Slot)o;
                short id   = (short)slot.ItemID.Value;
                WriteShort(id);
                if (id != -1)
                {
                    WriteSByte((sbyte)slot.ItemCount);
                    if (slot.OptionalNbt != null)
                    {
                        var file = new NbtFile(slot.OptionalNbt);
                        var data = file.SaveToBuffer(NbtCompression.GZip);
                        WriteShort((short)data.Length);
                        WriteByteArray(data);
                    }
                    else
                    {
                        WriteShort(-1);
                    }
                }

                break;

            case EntityMetadataType.Boolean:
                WriteBoolean((bool)o);
                break;
            }
            WriteByte(Closer);
        }