@Override
    protected CouchDbEndpoint createEndpoint(String uri, String remaining, Map<String, Object> params) throws Exception {
        CouchDbEndpoint endpoint = new CouchDbEndpoint(uri, remaining, this);
        setProperties(endpoint, params);
        return endpoint;
    }
@Test
    void testPropertiesSet() throws Exception {
        Map<String, Object> params = new HashMap<>();
        params.put("createDatabase", true);
        params.put("username", "coldplay");
        params.put("password", "chrism");
        params.put("heartbeat", "1000");
        params.put("style", "gothic");
        params.put("deletes", false);
        params.put("updates", false);

        String uri = "couchdb:http://localhost:14/db";
        String remaining = "http://localhost:14/db";

        CouchDbEndpoint endpoint
                = context.getComponent("couchdb", CouchDbComponent.class).createEndpoint(uri, remaining, params);
        assertEquals("http", endpoint.getProtocol());
        assertEquals("localhost", endpoint.getHostname());
        assertEquals("db", endpoint.getDatabase());
        assertEquals("coldplay", endpoint.getUsername());
        assertEquals("gothic", endpoint.getStyle());
        assertEquals("chrism", endpoint.getPassword());
        assertTrue(endpoint.isCreateDatabase());
        assertFalse(endpoint.isDeletes());
        assertFalse(endpoint.isUpdates());
        assertEquals(14, endpoint.getPort());
        assertEquals(1000, endpoint.getHeartbeat());
    }