@Override
    public List<T> select(CmdbContext<T> context) {
        return doSelect(context);
    }
@Test
    void testSelect() {
        CmdbContext<Instance> context = new CmdbContext<>();
        CmdbContext.CmdbInstance<Instance> provider = new CmdbContext.CmdbInstance<>();
        provider.setInstance(new Instance());
        provider.setEntity(new Entity());
        context.setProviders(Collections.singletonList(provider));
        CmdbContext.CmdbInstance<Instance> consumer = new CmdbContext.CmdbInstance<>();
        consumer.setInstance(new Instance());
        consumer.setEntity(new Entity());
        context.setConsumer(consumer);
        List<Instance> actual = new MockCmdbSelector().select(context);
        assertNull(actual.get(0).getIp());
        assertTrue(actual.get(0).getMetadata().isEmpty());
        assertEquals("true", provider.getInstance().getMetadata().get("afterSelect"));
        assertEquals("true", provider.getEntity().getLabels().get("afterSelect"));
        assertEquals("true", consumer.getInstance().getMetadata().get("afterSelect"));
        assertEquals("true", consumer.getEntity().getLabels().get("afterSelect"));
    }