public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequest<T, R> request) {
        return api.send(request);
    }
@Test
    public void sendVenue() {
        float lat = 21.999998f, lng = 105.2f;
        String title = "title", address = "addr", frsqrId = "asdfasdf", frsqrType = "frType";
        Venue venue = bot.execute(new SendVenue(chatId, lat, lng, title, address)
                .foursquareId(frsqrId).foursquareType(frsqrType)
        ).message().venue();
        assertEquals(lat, venue.location().latitude(), 0f);
        assertEquals(lng, venue.location().longitude(), 0f);
        assertEquals(address, venue.address());
        assertEquals(title, venue.title());
        assertEquals(frsqrId, venue.foursquareId());
        assertEquals(frsqrType, venue.foursquareType());

        String ggId = "ggId", ggType = "library";
        venue = bot.execute(new SendVenue(chatId, lat, lng, title, address)
                .googlePlaceId(ggId).googlePlaceType(ggType)
        ).message().venue();
        assertEquals(ggId, venue.googlePlaceId());
        assertEquals(ggType, venue.googlePlaceType());
    }