ibessonov commented on a change in pull request #41:
URL: https://github.com/apache/ignite-3/pull/41#discussion_r568481713



##########
File path: 
modules/configuration-annotation-processor/src/test/java/org/apache/ignite/configuration/sample/configuration/ConfigurationStorageTest.java
##########
@@ -0,0 +1,208 @@
+package org.apache.ignite.configuration.sample.configuration;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.Map;
+import org.apache.ignite.configuration.ConfigurationChanger;
+import org.apache.ignite.configuration.Configurator;
+import org.apache.ignite.configuration.RootKey;
+import org.apache.ignite.configuration.annotation.Config;
+import org.apache.ignite.configuration.annotation.ConfigValue;
+import org.apache.ignite.configuration.annotation.NamedConfigValue;
+import org.apache.ignite.configuration.annotation.Value;
+import org.apache.ignite.configuration.sample.configuration.impl.ANode;
+import org.apache.ignite.configuration.storage.Data;
+import 
org.apache.ignite.configuration.validation.ConfigurationValidationException;
+import org.apache.ignite.configuration.validation.ValidationIssue;
+import org.hamcrest.collection.IsMapContaining;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+class ConfigurationStorageTest {
+
+    private static final RootKey<?> KEY = () -> "key";
+    /** */
+    @Config
+    public static class AConfigurationSchema {
+        /** */
+        @ConfigValue
+        private BConfigurationSchema child;
+
+        /** */
+        @NamedConfigValue
+        private CConfigurationSchema elements;
+    }
+
+    /** */
+    @Config
+    public static class BConfigurationSchema {
+        /** */
+        @Value(immutable = true)
+        private int intCfg;
+
+        /** */
+        @Value
+        private String strCfg;
+    }
+
+    /** */
+    @Config
+    public static class CConfigurationSchema {
+        /** */
+        @Value
+        private String strCfg;
+    }
+
+    @Test
+    public void testPutGet() {
+        final TestConfigurationStorage storage = new 
TestConfigurationStorage();
+
+        final DynamicConfigurationController con = new 
DynamicConfigurationController();
+        final Configurator<?> configuration = con.getConfiguration();
+
+        ANode data = new ANode()
+            .initChild(init -> init.initIntCfg(1).initStrCfg("1"))
+            .initElements(change -> change.put("a", init -> 
init.initStrCfg("1")));
+
+        final ConfigurationChanger changer = new ConfigurationChanger(storage);
+        changer.init();
+
+        changer.registerConfiguration(KEY, configuration);
+
+        changer.change(Collections.singletonMap(KEY, data));
+
+        final Data dataFromStorage = storage.readAll();
+        final Map<String, Serializable> dataMap = dataFromStorage.values();
+
+        assertEquals(3, dataMap.size());
+        assertThat(dataMap, IsMapContaining.hasEntry("key.child.intCfg", 1));

Review comment:
       I think we should use static imports for matchers




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to