@Test public void test_equals_and_hashcode() { MeasureComputer.MeasureComputerDefinition computer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics("ncloc", "comment") .setOutputMetrics("comment_density_1", "comment_density_2") .build(); MeasureComputer.MeasureComputerDefinition sameComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics("comment", "ncloc") .setOutputMetrics("comment_density_2", "comment_density_1") .build(); MeasureComputer.MeasureComputerDefinition anotherComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics("comment") .setOutputMetrics("debt") .build(); assertThat(computer).isEqualTo(computer); assertThat(computer).isEqualTo(sameComputer); assertThat(computer).isNotEqualTo(anotherComputer); assertThat(computer).isNotEqualTo(null); assertThat(computer.hashCode()).isEqualTo(computer.hashCode()); assertThat(computer.hashCode()).isEqualTo(sameComputer.hashCode()); assertThat(computer.hashCode()).isNotEqualTo(anotherComputer.hashCode()); }
private static MeasureComputerDefinition validateDef(MeasureComputerDefinition def) { if (def instanceof MeasureComputerDefinitionImpl) { return def; } // If the computer has not been created by the builder, we recreate it to make sure it's valid Set<String> inputMetrics = def.getInputMetrics(); Set<String> outputMetrics = def.getOutputMetrics(); return new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics(from(inputMetrics).toArray(String.class)) .setOutputMetrics(from(outputMetrics).toArray(String.class)) .build(); } }
@Override public MeasureComputerDefinition define(MeasureComputerDefinitionContext def) { return def.newDefinitionBuilder() .setOutputMetrics(FILENAME_SIZE.key()) .build(); }
@Override public MeasureComputerDefinition define(MeasureComputerDefinitionContext def) { return def.newDefinitionBuilder() .setInputMetrics(FILENAME_SIZE.key()) .setOutputMetrics(FILENAME_SIZE_RATING.key()) .build(); }
@Override public MeasureComputerDefinition define(final MeasureComputerDefinitionContext definitionContext) { return definitionContext.newDefinitionBuilder() .setInputMetrics(this.inputMetricsKeys.toArray(new String[0])) .setOutputMetrics(this.outputMetricsKeys.toArray(new String[0])) .build(); }
@Override public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) { return defContext.newDefinitionBuilder().setInputMetrics(OpenEdgeMetrics.CLASSES_KEY, OpenEdgeMetrics.PROCEDURES_KEY, OpenEdgeMetrics.INCLUDES_KEY, OpenEdgeMetrics.WINDOWS_KEY, OpenEdgeMetrics.TRANSACTIONS_KEY, OpenEdgeMetrics.PACKAGES_KEY, OpenEdgeMetrics.INTERNAL_FUNCTIONS_KEY, OpenEdgeMetrics.INTERNAL_PROCEDURES_KEY, OpenEdgeMetrics.METHODS_KEY, OpenEdgeMetrics.OE_COMPLEXITY_KEY).setOutputMetrics( OpenEdgeMetrics.CLASSES_KEY, OpenEdgeMetrics.PROCEDURES_KEY, OpenEdgeMetrics.INCLUDES_KEY, OpenEdgeMetrics.WINDOWS_KEY, OpenEdgeMetrics.TRANSACTIONS_KEY, OpenEdgeMetrics.PACKAGES_KEY, OpenEdgeMetrics.INTERNAL_FUNCTIONS_KEY, OpenEdgeMetrics.INTERNAL_PROCEDURES_KEY, OpenEdgeMetrics.METHODS_KEY, OpenEdgeMetrics.OE_COMPLEXITY_KEY).build(); }
@Override public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) { return defContext.newDefinitionBuilder().setInputMetrics(OpenEdgeMetrics.NUM_TABLES_KEY, OpenEdgeMetrics.NUM_SEQUENCES_KEY, OpenEdgeMetrics.NUM_FIELDS_KEY, OpenEdgeMetrics.NUM_INDEXES_KEY, OpenEdgeMetrics.NUM_TRIGGERS_KEY).setOutputMetrics(OpenEdgeMetrics.NUM_TABLES_KEY, OpenEdgeMetrics.NUM_SEQUENCES_KEY, OpenEdgeMetrics.NUM_FIELDS_KEY, OpenEdgeMetrics.NUM_INDEXES_KEY, OpenEdgeMetrics.NUM_TRIGGERS_KEY).build(); }
.setOutputMetrics(NEW_METRIC_KEY) .build(); measureComputersHolder.setMeasureComputers(newArrayList( new MeasureComputerWrapper(
private static MeasureComputerDefinition validateDef(MeasureComputerDefinition def) { if (def instanceof MeasureComputerDefinitionImpl) { return def; } // If the computer has not been created by the builder, we recreate it to make sure it's valid Set<String> inputMetrics = def.getInputMetrics(); Set<String> outputMetrics = def.getOutputMetrics(); return new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics(from(inputMetrics).toArray(String.class)) .setOutputMetrics(from(outputMetrics).toArray(String.class)) .build(); } }
@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 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 fail_with_IAE_with_empty_output_metrics() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("At least one output metric must be defined"); new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics("ncloc", "comment") .setOutputMetrics(); }
@Test public void fail_with_NPE_when_one_output_metric_is_null() { thrown.expect(NullPointerException.class); thrown.expectMessage("Null metric is not allowed"); new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics("ncloc", "comment") .setOutputMetrics("comment_density_1", null); }
@Test public void fail_with_NPE_when_null_output_metrics() { thrown.expect(NullPointerException.class); thrown.expectMessage("Output metrics cannot be null"); new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics("ncloc", "comment") .setOutputMetrics((String[]) null); }
@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(); }
@Test public void build_measure_computer_with_multiple_metrics() { String[] inputMetrics = {"ncloc", "comment"}; String[] outputMetrics = {"comment_density_1", "comment_density_2"}; MeasureComputer.MeasureComputerDefinition measureComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics(inputMetrics) .setOutputMetrics(outputMetrics) .build(); assertThat(measureComputer.getInputMetrics()).containsOnly(inputMetrics); assertThat(measureComputer.getOutputMetrics()).containsOnly(outputMetrics); }
@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(); }
@Test public void input_metrics_can_be_empty() { MeasureComputer.MeasureComputerDefinition measureComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics() .setOutputMetrics("comment_density_1", "comment_density_2") .build(); assertThat(measureComputer.getInputMetrics()).isEmpty(); }
@Test public void fail_with_NPE_when_one_input_metric_is_null() { thrown.expect(NullPointerException.class); thrown.expectMessage("Null metric is not allowed"); new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics("ncloc", null) .setOutputMetrics("comment_density_1", "comment_density_2"); }
@Test public void input_metrics_is_empty_when_not_set() { MeasureComputer.MeasureComputerDefinition measureComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setOutputMetrics("comment_density_1", "comment_density_2") .build(); assertThat(measureComputer.getInputMetrics()).isEmpty(); }