CCM NG: Tested #equals, #hashCode and #toString of new KernelConfig class
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3787 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
cdc61894c6
commit
c024ac5593
|
|
@ -22,9 +22,12 @@ import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.libreccm.configuration.Configuration;
|
import org.libreccm.configuration.Configuration;
|
||||||
import org.libreccm.configuration.Setting;
|
import org.libreccm.configuration.Setting;
|
||||||
|
|
||||||
|
import java.util.StringJoiner;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
|
@ -56,11 +59,13 @@ public final class KernelConfig {
|
||||||
|
|
||||||
@Setting(descKey = "kernel.config.supported_languages")
|
@Setting(descKey = "kernel.config.supported_languages")
|
||||||
private Set<String> supportedLanguages = new HashSet<>(
|
private Set<String> supportedLanguages = new HashSet<>(
|
||||||
Arrays.asList(new String[]{"en"}));
|
Arrays.asList(new String[]{"en"}));
|
||||||
|
|
||||||
|
@Setting(descKey = "kernel.config.default_language")
|
||||||
|
private String defaultLanguage = "en";
|
||||||
|
|
||||||
public KernelConfig() {
|
public KernelConfig() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDebugEnabled() {
|
public boolean isDebugEnabled() {
|
||||||
|
|
@ -84,7 +89,7 @@ public final class KernelConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDataPermissionCheckEnabled(
|
public void setDataPermissionCheckEnabled(
|
||||||
final boolean dataPermissionCheckEnabled) {
|
final boolean dataPermissionCheckEnabled) {
|
||||||
this.dataPermissionCheckEnabled = dataPermissionCheckEnabled;
|
this.dataPermissionCheckEnabled = dataPermissionCheckEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -94,12 +99,12 @@ public final class KernelConfig {
|
||||||
|
|
||||||
public void setPrimaryUserIdentifier(final String primaryUserIdentifier) {
|
public void setPrimaryUserIdentifier(final String primaryUserIdentifier) {
|
||||||
if ("screen_name".equals(primaryUserIdentifier)
|
if ("screen_name".equals(primaryUserIdentifier)
|
||||||
|| "email".equals(primaryUserIdentifier)) {
|
|| "email".equals(primaryUserIdentifier)) {
|
||||||
this.primaryUserIdentifier = primaryUserIdentifier;
|
this.primaryUserIdentifier = primaryUserIdentifier;
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
"Primary user identifier can only be \"screen_name\" or "
|
"Primary user identifier can only be \"screen_name\" or "
|
||||||
+ "\"email\"");
|
+ "\"email\"");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -128,13 +133,46 @@ public final class KernelConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<String> getSupportedLanguages() {
|
public Set<String> getSupportedLanguages() {
|
||||||
return supportedLanguages;
|
if (supportedLanguages == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new HashSet<>(supportedLanguages);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSupportedLanguages(final Set<String> supportedLanguages) {
|
public void setSupportedLanguages(final Set<String> supportedLanguages) {
|
||||||
this.supportedLanguages = supportedLanguages;
|
this.supportedLanguages = supportedLanguages;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addSupportedLanguage(final String language) {
|
||||||
|
if (language == null) {
|
||||||
|
throw new IllegalArgumentException("Language can't be null.");
|
||||||
|
}
|
||||||
|
|
||||||
|
supportedLanguages.add(language);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeSupportedLanguage(final String language) {
|
||||||
|
supportedLanguages.remove(language);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultLanguage() {
|
||||||
|
return defaultLanguage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultLanguage(final String defaultLanguage) {
|
||||||
|
if (defaultLanguage == null) {
|
||||||
|
throw new IllegalArgumentException("Default language can't be null");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!supportedLanguages.contains(defaultLanguage)) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"Default language must be one of the supported languages");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.defaultLanguage = defaultLanguage;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int hash = 7;
|
int hash = 7;
|
||||||
|
|
@ -146,6 +184,7 @@ public final class KernelConfig {
|
||||||
hash = 61 * hash + (rememberLoginEnabled ? 1 : 0);
|
hash = 61 * hash + (rememberLoginEnabled ? 1 : 0);
|
||||||
hash = 61 * hash + (secureLoginEnabled ? 1 : 0);
|
hash = 61 * hash + (secureLoginEnabled ? 1 : 0);
|
||||||
hash = 61 * hash + Objects.hashCode(supportedLanguages);
|
hash = 61 * hash + Objects.hashCode(supportedLanguages);
|
||||||
|
hash = 61 * hash + Objects.hashCode(defaultLanguage);
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -161,46 +200,53 @@ public final class KernelConfig {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final KernelConfig other = (KernelConfig) obj;
|
final KernelConfig other = (KernelConfig) obj;
|
||||||
if (debugEnabled != other.debugEnabled) {
|
if (debugEnabled != other.isDebugEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (webdevSupportEnabled != other.webdevSupportEnabled) {
|
if (webdevSupportEnabled != other.isWebdevSupportEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (dataPermissionCheckEnabled != other.dataPermissionCheckEnabled) {
|
if (dataPermissionCheckEnabled != other.isDataPermissionCheckEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (ssoEnabled != other.ssoEnabled) {
|
if (ssoEnabled != other.isSsoEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (rememberLoginEnabled != other.rememberLoginEnabled) {
|
if (rememberLoginEnabled != other.isRememberLoginEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (secureLoginEnabled != other.secureLoginEnabled) {
|
if (secureLoginEnabled != other.isSecureLoginEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!Objects.equals(primaryUserIdentifier,
|
if (!Objects.equals(primaryUserIdentifier,
|
||||||
other.primaryUserIdentifier)) {
|
other.getPrimaryUserIdentifier())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return Objects.equals(supportedLanguages, other.supportedLanguages);
|
if (!Objects.equals(supportedLanguages, other.getSupportedLanguages())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Objects.equals(defaultLanguage, other.getDefaultLanguage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
final StringBuilder builder = new StringBuilder();
|
final StringJoiner joiner = new StringJoiner(",");
|
||||||
supportedLanguages.forEach(s -> builder.append(s));
|
if (supportedLanguages != null) {
|
||||||
|
supportedLanguages.forEach(s -> joiner.add(s));
|
||||||
|
}
|
||||||
|
|
||||||
return String.format("%s{ "
|
return String.format("%s{ "
|
||||||
+ "debugEnabled = %b, "
|
+ "debugEnabled = %b, "
|
||||||
+ "webdevSupportEnabled = %b, "
|
+ "webdevSupportEnabled = %b, "
|
||||||
+ "dataPermissionCheckEnabled = %b, "
|
+ "dataPermissionCheckEnabled = %b, "
|
||||||
+ "primaryUserIdentifier = \"%s\", "
|
+ "primaryUserIdentifier = \"%s\", "
|
||||||
+ "ssoEnabled = %b, "
|
+ "ssoEnabled = %b, "
|
||||||
+ "rememberLoginEnabeled = %b, "
|
+ "rememberLoginEnabeled = %b, "
|
||||||
+ "secureLoginEnabled = %b, "
|
+ "secureLoginEnabled = %b, "
|
||||||
+ "supportedLanguages = \"%s\""
|
+ "supportedLanguages = \"%s\", "
|
||||||
+ " }",
|
+ "defaultLanguage = \"%s\""
|
||||||
|
+ " }",
|
||||||
super.toString(),
|
super.toString(),
|
||||||
debugEnabled,
|
debugEnabled,
|
||||||
webdevSupportEnabled,
|
webdevSupportEnabled,
|
||||||
|
|
@ -209,6 +255,8 @@ public final class KernelConfig {
|
||||||
ssoEnabled,
|
ssoEnabled,
|
||||||
rememberLoginEnabled,
|
rememberLoginEnabled,
|
||||||
secureLoginEnabled,
|
secureLoginEnabled,
|
||||||
builder.toString());
|
joiner.toString(),
|
||||||
|
defaultLanguage);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import static org.libreccm.core.CoreConstants.*;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
@ -55,7 +56,7 @@ public class EnumSetting
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return value;
|
return new HashSet<>(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 LibreCCM Foundation.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
package com.arsdigita.kernel;
|
||||||
|
|
||||||
|
import org.junit.experimental.categories.Category;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.Parameterized;
|
||||||
|
import org.libreccm.tests.categories.UnitTest;
|
||||||
|
import org.libreccm.testutils.EqualsVerifier;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@RunWith(Parameterized.class)
|
||||||
|
@Category(UnitTest.class)
|
||||||
|
public class EqualsAndHashCodeTest extends EqualsVerifier {
|
||||||
|
@Parameterized.Parameters(name = "{0}")
|
||||||
|
public static Collection<Class<?>> data() {
|
||||||
|
return Arrays.asList(new Class<?>[] {
|
||||||
|
KernelConfig.class
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public EqualsAndHashCodeTest(final Class<?> entityClass) {
|
||||||
|
super(entityClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 LibreCCM Foundation.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
package com.arsdigita.kernel;
|
||||||
|
|
||||||
|
import org.junit.experimental.categories.Category;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.Parameterized;
|
||||||
|
import org.libreccm.tests.categories.UnitTest;
|
||||||
|
import org.libreccm.testutils.ToStringVerifier;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@RunWith(Parameterized.class)
|
||||||
|
@Category(UnitTest.class)
|
||||||
|
public class ToStringTest extends ToStringVerifier {
|
||||||
|
|
||||||
|
@Parameterized.Parameters(name = "{0}")
|
||||||
|
public static Collection<Class<?>> data() {
|
||||||
|
return Arrays.asList(new Class<?>[]{
|
||||||
|
KernelConfig.class
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public ToStringTest(final Class<?> entityClass) {
|
||||||
|
super(entityClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue