@Test public void testFindRequiresSource() throws Exception { String modelName = "model"; //$NON-NLS-1$ String functionName = "fakeFunction"; //$NON-NLS-1$ ArrayList<String> bindings = new ArrayList<String>(); bindings.add(modelName); VDBMetaData vdb = Mockito.mock(VDBMetaData.class); ModelMetaData model = Mockito.mock(ModelMetaData.class); Mockito.stub(vdb.getModel(modelName)).toReturn(model); Mockito.stub(model.getSourceNames()).toReturn(bindings); BasicSourceCapabilities basicSourceCapabilities = new BasicSourceCapabilities(); basicSourceCapabilities.setFunctionSupport(functionName, true); ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class); ConnectorManager cm = Mockito.mock(ConnectorManager.class); Mockito.stub(cm.getCapabilities()).toThrow(new TranslatorException()); Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(cm); CachedFinder finder = new CachedFinder(repo, vdb); // Test SourceCapabilities actual = finder.findCapabilities(modelName); assertNotNull(actual); //$NON-NLS-1$ assertFalse(finder.isValid(modelName)); }
/** * if the metadata has not been supplied via setMetadata, this method will create the appropriate state * * @throws TeiidComponentException */ protected void initMetadata() throws TeiidComponentException { if (this.metadata != null) { return; } // Prepare dependencies for running the optimizer this.capabilitiesFinder = new CachedFinder(this.connectorManagerRepo, workContext.getVDB()); if (this.bufferManager.getOptions() != null) { this.capabilitiesFinder = new TempCapabilitiesFinder(this.capabilitiesFinder, this.bufferManager.getOptions().getDefaultNullOrder()); } else { this.capabilitiesFinder = new TempCapabilitiesFinder(this.capabilitiesFinder); } VDBMetaData vdbMetadata = workContext.getVDB(); metadata = vdbMetadata.getAttachment(QueryMetadataInterface.class); globalTables = vdbMetadata.getAttachment(GlobalTableStore.class); if (metadata == null) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30489, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30489, this.vdbName, this.vdbVersion)); } TempMetadataAdapter tma = new TempMetadataAdapter(metadata, this.tempTableStore.getMetadataStore()); tma.setSession(true); this.metadata = tma; }
/** * if the metadata has not been supplied via setMetadata, this method will create the appropriate state * * @throws TeiidComponentException */ protected void initMetadata() throws TeiidComponentException { if (this.metadata != null) { return; } // Prepare dependencies for running the optimizer this.capabilitiesFinder = new CachedFinder(this.connectorManagerRepo, workContext.getVDB()); if (this.bufferManager.getOptions() != null) { this.capabilitiesFinder = new TempCapabilitiesFinder(this.capabilitiesFinder, this.bufferManager.getOptions().getDefaultNullOrder()); } else { this.capabilitiesFinder = new TempCapabilitiesFinder(this.capabilitiesFinder); } VDBMetaData vdbMetadata = workContext.getVDB(); metadata = vdbMetadata.getAttachment(QueryMetadataInterface.class); globalTables = vdbMetadata.getAttachment(GlobalTableStore.class); if (metadata == null) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30489, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30489, this.vdbName, this.vdbVersion)); } TempMetadataAdapter tma = new TempMetadataAdapter(metadata, this.tempTableStore.getMetadataStore()); tma.setSession(true); this.metadata = tma; }
@Test public void testFind() throws Exception { String modelName = "model"; //$NON-NLS-1$ String functionName = "fakeFunction"; //$NON-NLS-1$ BasicSourceCapabilities caps = new BasicSourceCapabilities(); caps.setFunctionSupport("fakeFunction", true); //$NON-NLS-1$ ArrayList<String> bindings = new ArrayList<String>(); bindings.add(modelName); VDBMetaData vdb = Mockito.mock(VDBMetaData.class); ModelMetaData model = Mockito.mock(ModelMetaData.class); Mockito.stub(vdb.getModel(modelName)).toReturn(model); Mockito.stub(model.getSourceNames()).toReturn(bindings); BasicSourceCapabilities basicSourceCapabilities = new BasicSourceCapabilities(); basicSourceCapabilities.setFunctionSupport(functionName, true); ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class); ConnectorManager cm = Mockito.mock(ConnectorManager.class); Mockito.stub(cm.getCapabilities()).toReturn(basicSourceCapabilities); Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(cm); CachedFinder finder = new CachedFinder(repo, vdb); // Test SourceCapabilities actual = finder.findCapabilities(modelName); assertEquals("Did not get expected capabilities", true, actual.supportsFunction(functionName)); //$NON-NLS-1$ assertTrue(finder.isValid(modelName)); }
/** * if the metadata has not been supplied via setMetadata, this method will create the appropriate state * * @throws TeiidComponentException */ protected void initMetadata() throws TeiidComponentException { if (this.metadata != null) { return; } // Prepare dependencies for running the optimizer this.capabilitiesFinder = new CachedFinder(this.connectorManagerRepo, workContext.getVDB()); if (this.bufferManager.getOptions() != null) { this.capabilitiesFinder = new TempCapabilitiesFinder(this.capabilitiesFinder, this.bufferManager.getOptions().getDefaultNullOrder()); } else { this.capabilitiesFinder = new TempCapabilitiesFinder(this.capabilitiesFinder); } VDBMetaData vdbMetadata = workContext.getVDB(); metadata = vdbMetadata.getAttachment(QueryMetadataInterface.class); globalTables = vdbMetadata.getAttachment(GlobalTableStore.class); if (metadata == null) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30489, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30489, this.vdbName, this.vdbVersion)); } TempMetadataAdapter tma = new TempMetadataAdapter(metadata, this.tempTableStore.getMetadataStore()); tma.setSession(true); this.metadata = tma; }