package rocks.inspectit.shared.cs.cmr.property.configuration;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasEntry;
import static org.hamcrest.Matchers.hasKey;
import static org.hamcrest.Matchers.not;
import static org.mockito.Mockito.when;
import java.util.Map;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import rocks.inspectit.shared.cs.cmr.property.configuration.validation.PropertyValidation;
@SuppressWarnings("PMD")
public class ConfigurationTest {
private Configuration configuration;
@Mock
private AbstractProperty property1;
@Mock
private AbstractProperty property2;
@Mock
private PropertyValidation propertyValidation1;
@Mock
private PropertyValidation propertyValidation2;
@BeforeMethod
public void init() {
MockitoAnnotations.initMocks(this);
configuration = new Configuration();
PropertySection section = new PropertySection();
section.addProperty(property1);
section.addProperty(property2);
configuration.addSection(section);
}
@Test
public void validate() {
when(propertyValidation1.hasErrors()).thenReturn(true);
when(property1.validate()).thenReturn(propertyValidation1);
when(propertyValidation2.hasErrors()).thenReturn(false);
when(property2.validate()).thenReturn(propertyValidation2);
Map<AbstractProperty, PropertyValidation> validateMap = configuration.validate();
assertThat(validateMap, hasEntry(property1, propertyValidation1));
assertThat(validateMap, not(hasKey(property2)));
}
}