public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequest<T, R> request) {
        return api.send(request);
    }
@Test
    public void createForumTopic() {
        Integer color = 7322096;
        String emoji = "5434144690511290129";
        CreateForumTopicResponse createResponse = bot.execute(
                new CreateForumTopic(forum, "test_topic").iconColor(color).iconCustomEmojiId(emoji)
        );
        assertTrue(createResponse.isOk());
        ForumTopic topic = createResponse.forumTopic();
        assertNotNull(topic);
        assertEquals(color, topic.iconColor());
        assertEquals(emoji, topic.iconCustomEmojiId());

        String name = "test_topic_edit";
        BaseResponse response = bot.execute(
                new EditForumTopic(forum, topic.messageThreadId()).name(name).iconCustomEmojiId("")
        );
        assertTrue(response.isOk());

        response = bot.execute(new CloseForumTopic(forum, topic.messageThreadId()));
        assertTrue(response.isOk());

        response = bot.execute(new ReopenForumTopic(forum, topic.messageThreadId()));
        assertTrue(response.isOk());

        response = bot.execute(new DeleteForumTopic(forum, topic.messageThreadId()));
        assertTrue(response.isOk());
    }