From cdc61894c660d1b8142ef013051ef89c27aacced Mon Sep 17 00:00:00 2001 From: jensp Date: Mon, 11 Jan 2016 17:39:32 +0000 Subject: [PATCH] CCM NG: Some fixes for the new Configuration system git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3780 8810af33-2d31-482b-a856-94f89814c4df --- .../libreccm/configuration/EnumSetting.java | 2 +- .../ConfigurationManagerTest.java | 7 ++--- .../configuration/ExampleConfiguration.java | 27 ++++++++++++------- .../after-save-changed.yml | 20 ++++++++++++++ .../after-save-new.yml | 18 +++++++++++++ .../ConfigurationManagerTest/data.yml | 12 ++++++++- 6 files changed, 72 insertions(+), 14 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/configuration/EnumSetting.java b/ccm-core/src/main/java/org/libreccm/configuration/EnumSetting.java index e8ee74c03..5a87207d7 100644 --- a/ccm-core/src/main/java/org/libreccm/configuration/EnumSetting.java +++ b/ccm-core/src/main/java/org/libreccm/configuration/EnumSetting.java @@ -55,7 +55,7 @@ public class EnumSetting if (value == null) { return null; } else { - return Collections.unmodifiableSet(value); + return value; } } diff --git a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java index 1cc512d83..749c643fd 100644 --- a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java @@ -161,9 +161,9 @@ public class ConfigurationManagerTest { assertThat(configuration.getItemsPerPage(), is(20L)); assertThat(configuration.getHelpUrl(), is(equalTo("http://www.example.org"))); -// assertThat(configuration.getLanguages().size(), is(2)); -// assertThat(configuration.getLanguages(), hasItem("de")); -// assertThat(configuration.getLanguages(), hasItem("en")); + assertThat(configuration.getLanguages().size(), is(2)); + assertThat(configuration.getLanguages(), hasItem("de")); + assertThat(configuration.getLanguages(), hasItem("en")); } @Test @@ -179,6 +179,7 @@ public class ConfigurationManagerTest { configuration.setPrice(new BigDecimal("109.99")); configuration.setItemsPerPage(30L); + configuration.addLanguage("es"); configurationManager.saveConfiguration(configuration); } diff --git a/ccm-core/src/test/java/org/libreccm/configuration/ExampleConfiguration.java b/ccm-core/src/test/java/org/libreccm/configuration/ExampleConfiguration.java index 927cd722a..5cb694e98 100644 --- a/ccm-core/src/test/java/org/libreccm/configuration/ExampleConfiguration.java +++ b/ccm-core/src/test/java/org/libreccm/configuration/ExampleConfiguration.java @@ -19,6 +19,7 @@ package org.libreccm.configuration; import java.math.BigDecimal; +import java.util.Collections; import java.util.Set; /** @@ -43,8 +44,8 @@ public class ExampleConfiguration { @Setting private String helpUrl; -// @Setting -// private Set languages; + @Setting + private Set languages; public BigDecimal getPrice() { return price; @@ -86,11 +87,19 @@ public class ExampleConfiguration { this.helpUrl = helpUrl; } -// public Set getLanguages() { -// return languages; -// } -// -// private void setLanguages(final Set languages) { -// this.languages = languages; -// } + public Set getLanguages() { + return Collections.unmodifiableSet(languages); + } + + private void setLanguages(final Set languages) { + this.languages = languages; + } + + public void addLanguage(final String language) { + languages.add(language); + } + + public void removeLanguage(final String language) { + languages.remove(language); + } } diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-changed.yml b/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-changed.yml index 8856b55e4..cefa4bcbf 100644 --- a/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-changed.yml +++ b/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-changed.yml @@ -21,6 +21,8 @@ ccm_core.ccm_objects: display_name: itemsPerPage - object_id: -3500 display_name: helpUri + - object_id: -3600 + display_name: languages ccm_core.categories: - object_id: -2000 @@ -100,6 +102,12 @@ ccm_core.categorizations: category_order: 1 object_order: 5 category_index: false + - categorization_id: -10600 + category_id: -2400 + object_id: -3600 + category_order: 1 + object_order: 6 + category_index: false ccm_core.settings: - object_id: -3100 @@ -112,6 +120,8 @@ ccm_core.settings: name: itemsPerPage - object_id: -3500 name: helpUrl + - object_id: -3600 + name: languages ccm_core.settings_big_decimal: - object_id: -3100 @@ -132,4 +142,14 @@ ccm_core.settings_long: ccm_core.settings_string: - object_id: -3500 setting_value: http://www.example.org + +ccm_core.settings_enum: + - object_id: -3600 +ccm_core.settings_enum_values: + - enum_id: -3600 + value: de + - enum_id: -3600 + value: en + - enum_id: -3600 + value: es diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-new.yml b/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-new.yml index 44f3ba5d1..a8e3b55ec 100644 --- a/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-new.yml +++ b/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/after-save-new.yml @@ -21,6 +21,8 @@ ccm_core.ccm_objects: display_name: itemsPerPage - object_id: -3500 display_name: helpUri + - object_id: -3600 + display_name: languages - object_id: 1 display_name: com - object_id: 2 @@ -131,6 +133,12 @@ ccm_core.categorizations: category_order: 1 object_order: 1 category_index: false + - categorization_id: -10600 + category_id: -2400 + object_id: -3600 + category_order: 1 + object_order: 6 + category_index: false - categorization_id: 4 category_id: 3 object_id: 5 @@ -145,6 +153,8 @@ ccm_core.categorizations: category_index: false ccm_core.settings: + - object_id: -3600 + name: languages - object_id: -3500 name: helpUrl - object_id: -3300 @@ -183,4 +193,12 @@ ccm_core.settings_long: ccm_core.settings_string: - object_id: -3500 setting_value: http://www.example.org + +ccm_core.settings_enum: + - object_id: -3600 +ccm_core.settings_enum_values: + - enum_id: -3600 + value: de + - enum_id: -3600 + value: en diff --git a/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/data.yml b/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/data.yml index b89b330fa..c06f841ff 100644 --- a/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/data.yml +++ b/ccm-core/src/test/resources/datasets/org/libreccm/configuration/ConfigurationManagerTest/data.yml @@ -21,6 +21,8 @@ ccm_core.ccm_objects: display_name: itemsPerPage - object_id: -3500 display_name: helpUri + - object_id: -3600 + display_name: languages ccm_core.categories: - object_id: -2000 @@ -100,6 +102,12 @@ ccm_core.categorizations: category_order: 1 object_order: 5 category_index: false + - categorization_id: -10600 + category_id: -2400 + object_id: -3600 + category_order: 1 + object_order: 6 + category_index: false ccm_core.settings: - object_id: -3100 @@ -112,6 +120,8 @@ ccm_core.settings: name: itemsPerPage - object_id: -3500 name: helpUrl + - object_id: -3600 + name: languages ccm_core.settings_big_decimal: - object_id: -3100 @@ -136,7 +146,7 @@ ccm_core.settings_string: ccm_core.settings_enum: - object_id: -3600 -ccm_core.settings_values: +ccm_core.settings_enum_values: - enum_id: -3600 value: de - enum_id: -3600