@Test public void testGetScriptForLatestEndpointReturnsNullWhenNotFound() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); FilterInfo filterInfo = dao.getLatestFilterInfoForFilter("/unknown/filter"); assertNull(filterInfo); }
/** * We don't want a NULL when an filter is not found, instead we want an empty list. */ @Test public void testGetScriptForEndpointReturnsEmptyListInsteadOfNullWhenEndpointNotFound() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); List<FilterInfo> list = dao.getZuulFiltersForFilterId("/unknown/Filter"); assertNotNull(list); assertEquals(0, list.size()); }
/** * We don't want a NULL when there are no Filters, instead we want an empty list. */ @Test public void testGetAllFiltersReturnsEmptyListInsteadOfNullWhenNoFilters() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); List<String> list = dao.getAllFilterIDs(); assertNotNull(list); assertEquals(0, list.size()); }
/** * We can't unit test the CQL query or how Cassandra will behave, that will have to be manually confirmed. * We can however test that whatever rows are returned do end up in the List<EndpointURI> that we expect. */ @SuppressWarnings("unchecked") @Test public void testGetAllEndpointsReturnsResults() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response String fids = "filter1|filter2"; /* create mock response data */ Row<String, String> row0 = mockRow(); ColumnList<String> columnList0 = mockColumnList(row0); mockColumn(columnList0, "filter_ids", fids); // when(response.getRowByIndex(0)).thenReturn(row0); Iterator<Row<String, String>> iterator = (Iterator<Row<String, String>>) mock(Iterator.class); when(response.iterator()).thenReturn(iterator); when(iterator.hasNext()).thenReturn(true, false); // 1 row when(iterator.next()).thenReturn(row0, (Row) null); when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(false); when(response.size()).thenReturn(1); /* exercise the method we're testing */ List<String> list = dao.getAllFilterIDs(); /* validate responses */ assertEquals("filter1", list.get(0)); assertEquals("filter2", list.get(1)); }
@SuppressWarnings("unchecked") @Test public void testGetFilterIdsIndex() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response String fids = "filter1|filter2|filter3"; /* create mock response data */ Row<String, String> row0 = mockRow(); ColumnList<String> columnList0 = mockColumnList(row0); mockColumn(columnList0, "filter_ids", fids); // when(response.getRowByIndex(0)).thenReturn(row0); Iterator<Row<String, String>> iterator = (Iterator<Row<String, String>>) mock(Iterator.class); when(response.iterator()).thenReturn(iterator); when(iterator.hasNext()).thenReturn(true, false); // 1 row when(iterator.next()).thenReturn(row0, (Row) null); when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(false); when(response.size()).thenReturn(1); /* exercise the method we're testing */ List<String> list = dao.getFilterIdsIndex("index"); /* validate responses */ assertEquals(list.size(), 3); assertEquals(list.get(0), "filter1"); assertEquals(list.get(1), "filter2"); assertEquals(list.get(2), "filter3"); }
/** * We can't unit test the CQL query or how Cassandra will behave, that will have to be manually confirmed. * We can however test that whatever rows are returned do end up in the List<EndpointURI> that we expect. */ @SuppressWarnings("unchecked") @Test public void testGetAllEndpointsReturnsResults() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response String fids = "filter1|filter2"; /* create mock response data */ Row<String, String> row0 = mockRow(); ColumnList<String> columnList0 = mockColumnList(row0); mockColumn(columnList0, "filter_ids", fids); // when(response.getRowByIndex(0)).thenReturn(row0); Iterator<Row<String, String>> iterator = (Iterator<Row<String, String>>) mock(Iterator.class); when(response.iterator()).thenReturn(iterator); when(iterator.hasNext()).thenReturn(true, false); // 1 row when(iterator.next()).thenReturn(row0, (Row) null); when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(false); when(response.size()).thenReturn(1); /* exercise the method we're testing */ List<String> list = dao.getAllFilterIDs(); /* validate responses */ assertEquals("filter1", list.get(0)); assertEquals("filter2", list.get(1)); }
@SuppressWarnings("unchecked") @Test public void testGetFilterIdsIndex() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response String fids = "filter1|filter2|filter3"; /* create mock response data */ Row<String, String> row0 = mockRow(); ColumnList<String> columnList0 = mockColumnList(row0); mockColumn(columnList0, "filter_ids", fids); // when(response.getRowByIndex(0)).thenReturn(row0); Iterator<Row<String, String>> iterator = (Iterator<Row<String, String>>) mock(Iterator.class); when(response.iterator()).thenReturn(iterator); when(iterator.hasNext()).thenReturn(true, false); // 1 row when(iterator.next()).thenReturn(row0, (Row) null); when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(false); when(response.size()).thenReturn(1); /* exercise the method we're testing */ List<String> list = dao.getFilterIdsIndex("index"); /* validate responses */ assertEquals(list.size(), 3); assertEquals(list.get(0), "filter1"); assertEquals(list.get(1), "filter2"); assertEquals(list.get(2), "filter3"); }
@SuppressWarnings("unchecked") @Test public void testGetFilterIdsRawIndex() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response String fids = "filter1|filter2|filter3"; /* create mock response data */ Row<String, String> row0 = mockRow(); ColumnList<String> columnList0 = mockColumnList(row0); mockColumn(columnList0, "filter_ids", fids); // when(response.getRowByIndex(0)).thenReturn(row0); Iterator<Row<String, String>> iterator = (Iterator<Row<String, String>>) mock(Iterator.class); when(response.iterator()).thenReturn(iterator); when(iterator.hasNext()).thenReturn(true, false); // 1 row when(iterator.next()).thenReturn(row0, (Row) null); when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(false); when(response.size()).thenReturn(1); /* exercise the method we're testing */ String list = dao.getFilterIdsRaw("index"); /* validate responses */ assertEquals(fids, list); }
@SuppressWarnings("unchecked") @Test public void testGetFilterIdsRawIndex() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response String fids = "filter1|filter2|filter3"; /* create mock response data */ Row<String, String> row0 = mockRow(); ColumnList<String> columnList0 = mockColumnList(row0); mockColumn(columnList0, "filter_ids", fids); // when(response.getRowByIndex(0)).thenReturn(row0); Iterator<Row<String, String>> iterator = (Iterator<Row<String, String>>) mock(Iterator.class); when(response.iterator()).thenReturn(iterator); when(iterator.hasNext()).thenReturn(true, false); // 1 row when(iterator.next()).thenReturn(row0, (Row) null); when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(false); when(response.size()).thenReturn(1); /* exercise the method we're testing */ String list = dao.getFilterIdsRaw("index"); /* validate responses */ assertEquals(fids, list); }
public String getFilterIdsRaw(String index) { Rows<String, String> result = cassandraGateway.select("select filter_ids from zuul_filter_indices where index_name = '" + index + "'"); if (result == null || result.isEmpty()) { return ""; } else { Iterator<Row<String, String>> iterator = result.iterator(); if (iterator.hasNext()) { Row<String, String> row = iterator.next(); try { String filter_ids = row.getColumns().getColumnByName("filter_ids").getStringValue(); if (filter_ids == null) return ""; return filter_ids; } catch (Exception e) { // unable to retrieve data for this row, could be missing the uri column (which shouldn't happen) logger.warn("Unable to retrieve uri for row", e); } } return ""; } }
@Override public String getFilterIdsRaw(String index) { Rows<String, String> result = cassandraGateway.select("select filter_ids from zuul_filter_indices where index_name = '" + index + "'"); if (result == null || result.isEmpty()) { return ""; } else { Iterator<Row<String, String>> iterator = result.iterator(); if (iterator.hasNext()) { Row<String, String> row = iterator.next(); try { String filter_ids = row.getColumns().getColumnByName("filter_ids").getStringValue(); if (filter_ids == null) return ""; return filter_ids; } catch (Exception e) { // unable to retrieve data for this row, could be missing the uri column (which shouldn't happen) logger.warn("Unable to retrieve uri for row", e); } } return ""; } }
/** * We don't want a NULL when there are no Filters, instead we want an empty list. */ @Test public void testGetAllFiltersReturnsEmptyListInsteadOfNullWhenNoFilters() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); List<String> list = dao.getAllFilterIDs(); assertNotNull(list); assertEquals(0, list.size()); }
/** * We don't want a NULL when an filter is not found, instead we want an empty list. */ @Test public void testGetScriptForEndpointReturnsEmptyListInsteadOfNullWhenEndpointNotFound() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); List<FilterInfo> list = dao.getZuulFiltersForFilterId("/unknown/Filter"); assertNotNull(list); assertEquals(0, list.size()); }
@Test public void testGetScriptForLatestEndpointReturnsNullWhenNotFound() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); FilterInfo filterInfo = dao.getLatestFilterInfoForFilter("/unknown/filter"); assertNull(filterInfo); }
@Test public void testGetScriptForEndpointAndRevisionReturnsNullWhenNotFound() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); FilterInfo filterInfo = dao.getFilterInfoForFilter("/unknown/filter", 2); assertNull(filterInfo); }
@Test public void testGetScriptForEndpointAndRevisionReturnsNullWhenNotFound() { ZuulFilterDAO dao = new ZuulFilterDAOCassandra(gateway); // setup empty response when(gateway.select(anyString())).thenReturn(response); when(response.isEmpty()).thenReturn(true); FilterInfo filterInfo = dao.getFilterInfoForFilter("/unknown/filter", 2); assertNull(filterInfo); }