@Override
    public String getConfig(String dataId, String group, long timeoutMs) throws NacosException {
        return getConfigInner(namespace, dataId, group, timeoutMs);
    }
@Test
    void testGetConfigFromLocalCache() throws NacosException {
        final String dataId = "1localcache";
        final String group = "2";
        final String tenant = "";
        
        MockedStatic<LocalConfigInfoProcessor> localConfigInfoProcessorMockedStatic = Mockito.mockStatic(LocalConfigInfoProcessor.class);
        try {
            String contentFailOver = "localCacheContent" + System.currentTimeMillis();
            //fail over null
            localConfigInfoProcessorMockedStatic.when(() -> LocalConfigInfoProcessor.getFailover(any(), eq(dataId), eq(group), eq(tenant)))
                    .thenReturn(null);
            //snapshot content
            localConfigInfoProcessorMockedStatic.when(() -> LocalConfigInfoProcessor.getSnapshot(any(), eq(dataId), eq(group), eq(tenant)))
                    .thenReturn(contentFailOver);
            //form server error.
            final int timeout = 3000;
            Mockito.when(mockWoker.getServerConfig(dataId, group, "", timeout, false)).thenThrow(new NacosException());
            
            final String config = nacosConfigService.getConfig(dataId, group, timeout);
            assertEquals(contentFailOver, config);
        } finally {
            localConfigInfoProcessorMockedStatic.close();
        }
        
    }