@Test public void build_definition_without_input_metric() { MeasureComputerDefinition definition = new MeasureComputerDefinitionBuilderImpl() .setOutputMetrics("OUTPUT_1", "OUTPUT_2") .build(); assertThat(definition.getInputMetrics()).isEmpty(); assertThat(definition.getOutputMetrics()).containsOnly("OUTPUT_1", "OUTPUT_2"); }
@Test public void build_definition() { MeasureComputerDefinition definition = new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", "INPUT_2") .setOutputMetrics("OUTPUT_1", "OUTPUT_2") .build(); assertThat(definition.getInputMetrics()).containsOnly("INPUT_1", "INPUT_2"); assertThat(definition.getOutputMetrics()).containsOnly("OUTPUT_1", "OUTPUT_2"); }
@Override public MeasureComputer.MeasureComputerDefinition.Builder newDefinitionBuilder() { return new TestMeasureComputerDefinition.MeasureComputerDefinitionBuilderImpl(); } }
@Test public void fail_with_NPE_when_building_definition_without_output_metrics() { thrown.expect(NullPointerException.class); thrown.expectMessage("Output metrics cannot be null"); new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", "INPUT_2") .build(); }
@Test public void fail_with_NPE_when_building_definition_with_null_input_metrics() { thrown.expect(NullPointerException.class); thrown.expectMessage("Input metrics cannot be null"); new MeasureComputerDefinitionBuilderImpl() .setInputMetrics((String[]) null) .setOutputMetrics("OUTPUT_1", "OUTPUT_2") .build(); }
@Override public MeasureComputer.MeasureComputerDefinition.Builder newDefinitionBuilder() { return new TestMeasureComputerDefinition.MeasureComputerDefinitionBuilderImpl(); } }
@Test public void fail_with_NPE_when_building_definition_with_null_output_metrics() { thrown.expect(NullPointerException.class); thrown.expectMessage("Output metrics cannot be null"); new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", "INPUT_2") .setOutputMetrics((String[]) null) .build(); }
@Test public void fail_with_IAE_when_building_definition_with_core_metrics_in_output_metrics() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Core metrics are not allowed"); new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", "INPUT_2") .setOutputMetrics(CoreMetrics.NCLOC_KEY) .build(); } }
@Test public void fail_with_NPE_when_building_definition_with_on_null_ouput_metric() { thrown.expect(NullPointerException.class); thrown.expectMessage("Null metric is not allowed"); new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", "INPUT_2") .setOutputMetrics("OUTPUT_1", null) .build(); }
@Test public void fail_with_NPE_when_building_definition_with_on_null_input_metric() { thrown.expect(NullPointerException.class); thrown.expectMessage("Null metric is not allowed"); new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", null) .setOutputMetrics("OUTPUT_1", "OUTPUT_2") .build(); }
@Test public void fail_with_IAE_when_building_definition_with_empty_output_metrics() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("At least one output metric must be defined"); new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", "INPUT_2") .setOutputMetrics() .build(); }