public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequest<T, R> request) {
        return api.send(request);
    }
@Test
    public void unbanChatMember() {
        BaseResponse response = bot.execute(new UnbanChatMember(channelName, chatId));
        assertFalse(response.isOk());
        assertEquals(400, response.errorCode());
        assertEquals("Bad Request: can't remove chat owner", response.description());

        // returns true for non-banned member with onlyIfBanned(true)
        response = bot.execute(new UnbanChatMember(channelName, chatId).onlyIfBanned(true));
        assertTrue(response.isOk());
    }