private static void setValueAccordingToType(ScannerReport.Measure.Builder builder, DefaultMeasure<?> measure) { Serializable value = measure.value(); Metric<?> metric = measure.metric(); if (Boolean.class.equals(metric.valueType())) { builder.setBooleanValue(BoolValue.newBuilder().setValue(((Boolean) value).booleanValue())); } else if (Integer.class.equals(metric.valueType())) { builder.setIntValue(IntValue.newBuilder().setValue(((Number) value).intValue())); } else if (Double.class.equals(metric.valueType())) { builder.setDoubleValue(DoubleValue.newBuilder().setValue(((Number) value).doubleValue())); } else if (String.class.equals(metric.valueType())) { builder.setStringValue(StringValue.newBuilder().setValue((String) value)); } else if (Long.class.equals(metric.valueType())) { builder.setLongValue(LongValue.newBuilder().setValue(((Number) value).longValue())); } else { throw new UnsupportedOperationException("Unsupported type :" + metric.valueType()); } }
@Test public void toMeasure_maps_data_and_alert_properties_in_dto_for_Double_Metric() { ScannerReport.Measure batchMeasure = ScannerReport.Measure.newBuilder() .setDoubleValue(DoubleValue.newBuilder().setValue(10.6395d).setData(SOME_DATA)) .build(); Optional<Measure> measure = underTest.toMeasure(batchMeasure, SOME_DOUBLE_METRIC); assertThat(measure.isPresent()).isTrue(); assertThat(measure.get().getValueType()).isEqualTo(Measure.ValueType.DOUBLE); assertThat(measure.get().getDoubleValue()).isEqualTo(10.6395d); assertThat(measure.get().getData()).isEqualTo(SOME_DATA); }
@Test public void write_measures() { assertThat(underTest.hasComponentData(FileStructure.Domain.MEASURES, 1)).isFalse(); ScannerReport.Measure measure = ScannerReport.Measure.newBuilder() .setDoubleValue(DoubleValue.newBuilder().setValue(2.5d).setData("text-value")) .build(); underTest.writeComponentMeasures(1, asList(measure)); assertThat(underTest.hasComponentData(FileStructure.Domain.MEASURES, 1)).isTrue(); File file = underTest.getFileStructure().fileFor(FileStructure.Domain.MEASURES, 1); assertThat(file).exists().isFile(); try (CloseableIterator<ScannerReport.Measure> read = Protobuf.readStream(file, ScannerReport.Measure.parser())) { assertThat(Iterators.size(read)).isEqualTo(1); } }
private static void setValueAccordingToType(ScannerReport.Measure.Builder builder, DefaultMeasure<?> measure) { Serializable value = measure.value(); Metric<?> metric = measure.metric(); if (Boolean.class.equals(metric.valueType())) { builder.setBooleanValue(BoolValue.newBuilder().setValue(((Boolean) value).booleanValue())); } else if (Integer.class.equals(metric.valueType())) { builder.setIntValue(IntValue.newBuilder().setValue(((Number) value).intValue())); } else if (Double.class.equals(metric.valueType())) { builder.setDoubleValue(DoubleValue.newBuilder().setValue(((Number) value).doubleValue())); } else if (String.class.equals(metric.valueType())) { builder.setStringValue(StringValue.newBuilder().setValue((String) value)); } else if (Long.class.equals(metric.valueType())) { builder.setLongValue(LongValue.newBuilder().setValue(((Number) value).longValue())); } else { throw new UnsupportedOperationException("Unsupported type :" + metric.valueType()); } }
@DataProvider public static Object[][] all_types_batch_measure_builders() { return new Object[][] { {ScannerReport.Measure.newBuilder().setBooleanValue(BoolValue.newBuilder().setValue(true)), SOME_BOOLEAN_METRIC}, {ScannerReport.Measure.newBuilder().setIntValue(IntValue.newBuilder().setValue(1)), SOME_INT_METRIC}, {ScannerReport.Measure.newBuilder().setLongValue(LongValue.newBuilder().setValue(1)), SOME_LONG_METRIC}, {ScannerReport.Measure.newBuilder().setDoubleValue(DoubleValue.newBuilder().setValue(1)), SOME_DOUBLE_METRIC}, {ScannerReport.Measure.newBuilder().setStringValue(StringValue.newBuilder().setValue("1")), SOME_STRING_METRIC}, {ScannerReport.Measure.newBuilder().setStringValue(StringValue.newBuilder().setValue(Measure.Level.OK.name())), SOME_LEVEL_METRIC} }; } }