/*
* Copyright 2015 Hewlett-Packard Development Company, L.P.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
*/
package com.hp.autonomy.frontend.find.core.configuration;
import com.hp.autonomy.frontend.configuration.ConfigurationComponentTest;
import org.apache.commons.io.IOUtils;
import org.hamcrest.Matchers;
import org.springframework.boot.test.json.JsonContent;
import org.springframework.boot.test.json.ObjectContent;
import java.io.IOException;
import java.util.Map;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasKey;
import static org.junit.Assert.assertTrue;
public class UiCustomizationRuleTest extends ConfigurationComponentTest<UiCustomizationRule> {
@Override
protected Class<UiCustomizationRule> getType() {
return UiCustomizationRule.class;
}
@Override
protected UiCustomizationRule constructComponent() {
return UiCustomizationRule.builder()
.populateRule("user", false)
.build();
}
@Override
protected String sampleJson() throws IOException {
return IOUtils.toString(UiCustomizationRuleTest.class.getResourceAsStream("/com/hp/autonomy/frontend/find/core/configuration/ui-customization-rule.json"));
}
@Override
protected void validateJson(final JsonContent<UiCustomizationRule> jsonContent) {
jsonContent.assertThat().hasJsonPathBooleanValue("@.user", false);
}
@Override
protected void validateParsedComponent(final ObjectContent<UiCustomizationRule> objectContent) {
final Map<String, Object> rules = objectContent.getObject().getRoleMap();
assertThat(rules, hasKey("user"));
assertThat(rules, hasKey("bi"));
}
@Override
protected void validateMergedComponent(final ObjectContent<UiCustomizationRule> objectContent) {
final Map<String, Object> rules = objectContent.getObject().getRoleMap();
assertThat(rules, Matchers.hasEntry("user", false));
assertThat(rules, Matchers.hasEntry("bi", true));
}
@Override
protected void validateString(final String s) {
assertTrue(s.contains("user"));
}
}