public TwilioEndpoint(String uri, TwilioComponent component, TwilioApiName apiName, String methodName,
                          TwilioConfiguration endpointConfiguration) {
        super(uri, component, apiName, methodName, TwilioApiCollection.getCollection().getHelper(apiName),
              endpointConfiguration);
        this.component = component;
        this.configuration = endpointConfiguration;
    }
@Test
    public void testTwilioEndpoint() {
        // should not use reflection when creating and configuring endpoint
        final BeanIntrospection beanIntrospection = PluginHelper.getBeanIntrospection(context);
        long before = beanIntrospection.getInvokedCounter();

        TwilioEndpoint te = context.getEndpoint("twilio:account/fetcher?pathSid=123", TwilioEndpoint.class);
        AccountEndpointConfiguration aec = (AccountEndpointConfiguration) te.getConfiguration();
        Assertions.assertEquals("123", aec.getPathSid());

        te = context.getEndpoint(
                "twilio://call/create?from=RAW(+15005550006)&to=RAW(+14108675310)&url=http://demo.twilio.com/docs/voice.xml",
                TwilioEndpoint.class);

        Assertions.assertTrue(te.getConfiguration() instanceof CallEndpointConfiguration);
        CallEndpointConfiguration cee = (CallEndpointConfiguration) te.getConfiguration();
        Assertions.assertEquals("+15005550006", cee.getFrom().getEndpoint());
        Assertions.assertEquals("+14108675310", cee.getTo().getEndpoint());

        long after = beanIntrospection.getInvokedCounter();
        Assertions.assertEquals(before, after);
    }