public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequest<T, R> request) {
        return api.send(request);
    }
@Test
    public void setStickerSetThumb() {
        String thumbFile = "CAACAgIAAxkBAAJ0ll6DO4bNCynpfZmS6g-YcGY2zrP5AAIBAAPANk8TGC5zMKs_LVEYBA";
        BaseResponse response = bot.execute(new SetStickerSetThumb(stickerSetAnim, chatId, thumbFile));
        assertTrue(response.isOk());

        response = bot.execute(new SetStickerSetThumbnail(stickerSetAnim, chatId, thumbFile));
        assertTrue(response.isOk());

        StickerSet set = bot.execute(new GetStickerSet(stickerSetAnim)).stickerSet();
        assertFalse(set.isAnimated());
        PhotoSize thumb = set.thumb();
        PhotoSizeTest.checkPhotos(thumb);
        assertEquals(Integer.valueOf(100), thumb.width());
        assertEquals(Integer.valueOf(100), thumb.height());
        assertEquals(Long.valueOf(8244), thumb.fileSize());

        // clear thumb by not sending it
        response = bot.execute(new SetStickerSetThumb(stickerSetAnim, chatId));
        assertTrue(response.isOk());

        response = bot.execute(new SetStickerSetThumbnail(stickerSetAnim, chatId));
        assertTrue(response.isOk());
    }