@Test public void testGlobalResultInvalid() { final AnalyzerCreationResult<TestAnalyzerType> failedResult = new AnalyzerCreationResult<TestAnalyzerType>( this.testAnalyzerType, ValidationResult.invalidResult("Something global wrong"), createParameterResults(ValidationResult.validResult(), ValidationResult.validResult())); Assert.assertFalse(failedResult.wasSuccessful()); Assert.assertNull(failedResult.getAnalyzer()); Assert.assertFalse(failedResult.getGlobalResult().isValid()); Assert.assertEquals( failedResult.getParameterResults().keySet(), new HashSet<>(Arrays.asList(this.stringParameterSpec, this.intParameterSpec))); Assert.assertTrue(failedResult.getParameterResults().get(this.stringParameterSpec).isValid()); Assert.assertTrue(failedResult.getParameterResults().get(this.intParameterSpec).isValid()); }
@SuppressWarnings("serial") @Test public void testFailedConstructions() { final TestAnalyzerType nullAnalyzerType = null; final Analyzer<TestAnalyzerType> nullAnalyzer = null; // Null analyzer type testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( nullAnalyzerType, ValidationResult.validResult(), createParameterResults( ValidationResult.validResult(), ValidationResult.validResult()))); // Null global results testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( this.testAnalyzer, null, createParameterResults( ValidationResult.validResult(), ValidationResult.validResult()))); // Null parameter results testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( this.testAnalyzer, ValidationResult.validResult(), null)); // Null analyzer but valid results testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( nullAnalyzer, ValidationResult.validResult(), createParameterResults( ValidationResult.validResult(), ValidationResult.validResult()))); // Non-null analyzer but global result invalid testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( this.testAnalyzer, ValidationResult.invalidResult("bad global"), createParameterResults( ValidationResult.validResult(), ValidationResult.validResult()))); // Non-null analyzer but parameter result invalid testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( this.testAnalyzer, ValidationResult.validResult(), createParameterResults( ValidationResult.invalidResult("bad string"), ValidationResult.validResult()))); // Missing parameter results testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( this.testAnalyzer, ValidationResult.validResult(), Collections.emptyMap())); // Extra parameter results testFailedConstruction( () -> new AnalyzerCreationResult<TestAnalyzerType>( this.testAnalyzer, ValidationResult.validResult(), new HashMap<ParameterSpec<?>, ValidationResult>() { { put( AnalyzerCreationResultTest.this.stringParameterSpec, ValidationResult.validResult()); put( AnalyzerCreationResultTest.this.intParameterSpec, ValidationResult.validResult()); put( AnalysisTestUtils.createParameterSpec("extraId", Boolean.class), ValidationResult.validResult()); } })); }