1 package org.opendaylight.controller.config.api;
3 import static junit.framework.Assert.assertEquals;
4 import static junit.framework.Assert.assertTrue;
5 import static junit.framework.Assert.fail;
6 import static org.junit.Assert.assertThat;
7 import static org.junit.matchers.JUnitMatchers.containsString;
9 import com.google.common.collect.Lists;
11 import org.junit.Test;
13 public class ValidationExceptionTest {
15 private String instance = "instance";
16 private final ModuleIdentifier mi = new ModuleIdentifier("module", instance);
17 private String instance2 = "instance2";
18 private final ModuleIdentifier mi2 = new ModuleIdentifier("module", instance2);
19 private final String message = "ex message";
20 private final Exception e = new IllegalStateException(message);
23 public void testCreateFromCollectedValidationExceptions() throws Exception {
24 ValidationException single = ValidationException.createForSingleException(mi, e);
25 ValidationException single2 = ValidationException.createForSingleException(mi2, e);
27 ValidationException collected = ValidationException.createFromCollectedValidationExceptions(Lists.newArrayList(single, single2));
29 Map<String, Map<String, ValidationException.ExceptionMessageWithStackTrace>> failedMap = collected.getFailedValidations();
30 assertEquals(1, failedMap.size());
31 assertTrue(failedMap.containsKey("module"));
33 Map<String, ValidationException.ExceptionMessageWithStackTrace> failedModule = failedMap.get("module");
34 assertEquals(2, failedModule.size());
35 assertTrue(failedModule.containsKey(instance));
36 assertEquals(message, failedModule.get(instance).getMessage());
37 assertEquals(message, failedModule.get(instance2).getMessage());
38 assertEquals(failedModule.get(instance), failedModule.get(instance2));
42 public void testCreateFromCollectedValidationExceptionsWithDuplicate() throws Exception {
43 ValidationException single = ValidationException.createForSingleException(mi, e);
44 ValidationException single2 = ValidationException.createForSingleException(mi, e);
46 ValidationException.createFromCollectedValidationExceptions(Lists.newArrayList(single, single2));
47 } catch (IllegalArgumentException ex) {
48 // Duplicate exception
49 assertThat(ex.getMessage(), containsString("Cannot merge"));
52 fail("Duplicate exception should have failed");