MockResultSet rs = new MockResultSet("myMock"); rs.addColumn("columnA", new Integer[]{1}); rs.addColumn("columnB", new String[]{"Column B Value"}); rs.addColumn("columnC", new Double[]{2}); // make sure to move the cursor to the first row try { rs.next(); } catch (SQLException sqle) { fail("unable to move resultSet"); } // process the result set MyObject obj = processor.processResultSet(rs); // run your tests using the ResultSet like you normally would assertEquals(1, obj.getColumnAValue()); assertEquals("Column B Value", obj.getColumnBValue()); assertEquals(2.0d, obj.getColumnCValue());
/** * Returns the list of column values of the next row, or null. * @return a List object where the first value in the first column. * @see java.util.Iterator#next() */ public List<?> next() { try { if(resultSet.next()) { List<?> row = resultSet.getRow(resultSet.getRow()); return row; } } catch (SQLException ignored) { } return null; }
@Test public void testEmpty() throws Exception { MockResultSet resultSet = new MockResultSet("data"); StringWriter stringWriter = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.beginObject(); MetricDataRowCallbackHandler handler = new MetricDataRowCallbackHandler( jsonWriter, new MetricDataQueryParams(0, 3, 1), Collections.emptySet() ); while (resultSet.next()) { handler.processRow(resultSet); } handler.finish(); jsonWriter.endObject(); Assert.assertEquals("{}", stringWriter.toString()); }
@Test public void testEmptyMetricFilling() throws Exception { MockResultSet resultSet = new MockResultSet("data"); resultSet.addColumn("metric", new String[]{"name1", "name1"}); resultSet.addColumn("ts", new Integer[]{100, 160}); resultSet.addColumn("value", new Double[]{33.33, 42.0}); StringWriter stringWriter = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.beginObject(); MetricDataRowCallbackHandler handler = new MetricDataRowCallbackHandler( jsonWriter, new MetricDataQueryParams(100, 280, 60), new LinkedHashSet<>(Arrays.asList("name1", "name2", "name3")) ); while (resultSet.next()) { handler.processRow(resultSet); } handler.finish(); jsonWriter.endObject(); JsonObject expected = new JsonObject(); expected.add("name1", createMetric(100, 280, 60, 33.33, 42.0, Double.NaN)); expected.add("name2", createMetric(100, 280, 60, Double.NaN, Double.NaN, Double.NaN)); expected.add("name3", createMetric(100, 280, 60, Double.NaN, Double.NaN, Double.NaN)); Assert.assertEquals(expected.toString(), stringWriter.toString()); }
@Test public void testChNan() throws Exception { MockResultSet resultSet = new MockResultSet("data"); resultSet.addColumn("metric", new String[]{"name1", "name1", "name1"}); resultSet.addColumn("ts", new Integer[]{0, 1, 2}); resultSet.addColumn("value", new Double[]{0.0, Double.NaN, 2.0}); StringWriter stringWriter = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.beginObject(); MetricDataRowCallbackHandler handler = new MetricDataRowCallbackHandler( jsonWriter, new MetricDataQueryParams(0, 3, 1), Collections.emptySet() ); while (resultSet.next()) { handler.processRow(resultSet); } handler.finish(); jsonWriter.endObject(); JsonObject expected = new JsonObject(); expected.add("name1", createMetric(0, 3, 1, 0.0, Double.NaN, 2.0)); Assert.assertEquals(expected.toString(), stringWriter.toString()); }
@Test public void testHandler() throws Exception { MockResultSet resultSet = new MockResultSet("data"); resultSet.addColumn("metric", new String[]{"name1", "name1", "name2", "name2"}); resultSet.addColumn("ts", new Integer[]{100, 160, 160, 220}); resultSet.addColumn("value", new Double[]{33.33, 42.0, 32.0, 77.7}); StringWriter stringWriter = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.beginObject(); MetricDataRowCallbackHandler handler = new MetricDataRowCallbackHandler( jsonWriter, new MetricDataQueryParams(100, 280, 60), Collections.emptySet() ); while (resultSet.next()) { handler.processRow(resultSet); } handler.finish(); jsonWriter.endObject(); JsonObject expected = new JsonObject(); expected.add("name1", createMetric(100, 280, 60, 33.33, 42.0, Double.NaN)); expected.add("name2", createMetric(100, 280, 60, Double.NaN, 32.0, 77.7)); Assert.assertEquals(expected.toString(), stringWriter.toString()); }