public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequest<T, R> request) {
        return api.send(request);
    }
@Test
    public void getStickerSet() {
        GetStickerSetResponse response = bot.execute(new GetStickerSet(stickerSet));
        StickerSet stickerSet = response.stickerSet();
        for (Sticker sticker : response.stickerSet().stickers()) {
            StickerTest.check(sticker, true, true);
        }
        // clean up stickers, max 120 allowed
        if (stickerSet.stickers().length > 50) {
            for (int i = stickerSet.stickers().length - 1; i > stickerSet.stickers().length - 10; i--) {
                bot.execute(new DeleteStickerFromSet(stickerSet.stickers()[i].fileId()));
            }
        }
        assertTrue(stickerSet.containsMasks());
        assertEquals(stickerSet.stickerType(), Sticker.Type.mask);
        assertEquals(TelegramBotTest.stickerSet, stickerSet.name());
        assertEquals("test1", stickerSet.title());
        assertFalse(stickerSet.isAnimated());

        Sticker sticker = stickerSet.stickers()[0];
        assertEquals(TelegramBotTest.stickerSet, sticker.setName());
        MaskPosition maskPosition = sticker.maskPosition();
        assertEquals(MaskPosition.Point.forehead.name(), maskPosition.point());
        assertEquals(0f, maskPosition.xShift(), 0);
        assertEquals(0f, maskPosition.yShift(), 0);
        assertEquals(1f, maskPosition.scale(), 0);
    }