Update MRI projects for Aluminium
[bgpcep.git] / config-loader / config-loader-impl / src / test / java / org / opendaylight / bgpcep / config / loader / impl / AbstractConfigLoader.java
index 8373a110787d4e8f8b61d96a98b2a77a05f7d3d8..002ecf5a93d9b7fbe7022154ba489ba671299bbb 100644 (file)
@@ -5,59 +5,52 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.bgpcep.config.loader.impl;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 
 import java.nio.file.WatchEvent;
 import java.nio.file.WatchKey;
 import java.nio.file.WatchService;
-import java.util.ArrayList;
 import java.util.List;
-import javassist.ClassPool;
-import javax.annotation.concurrent.GuardedBy;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.checkerframework.checker.lock.qual.GuardedBy;
 import org.junit.After;
 import org.junit.Before;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.opendaylight.bgpcep.config.loader.spi.ConfigFileProcessor;
-import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest;
-import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext;
+import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractConcurrentDataBrokerTest;
+import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTestCustomizer;
+import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 
 public abstract class AbstractConfigLoader extends AbstractConcurrentDataBrokerTest {
     @GuardedBy("this")
-    private final List<WatchEvent<?>> eventList = new ArrayList<>();
+    private final List<WatchEvent<?>> eventList = new CopyOnWriteArrayList<>();
     protected ConfigLoaderImpl configLoader;
     @Mock
-    protected WatchService watchService;
+    private WatchService watchService;
+    @Mock
+    ConfigFileProcessor processor;
     @Mock
     private WatchKey watchKey;
     @Mock
     private WatchEvent<?> watchEvent;
     @Mock
-    protected ConfigFileProcessor processor;
-    @Mock
     private FileWatcher fileWatcher;
+    protected AdapterContext mappingService;
+    protected DOMSchemaService schemaService;
+
+    public AbstractConfigLoader() {
+        super(true);
+    }
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        final BindingToNormalizedNodeCodec mappingService = new BindingToNormalizedNodeCodec(
-                GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(),
-                new BindingNormalizedNodeCodecRegistry(
-                        StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()))));
-        final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();
-        registerModules(moduleInfoBackedContext);
-        mappingService.onGlobalContextUpdated(moduleInfoBackedContext.tryToCreateSchemaContext().get());
         doAnswer(invocation -> true).when(this.watchKey).reset();
         doReturn(this.eventList).when(this.watchKey).pollEvents();
         doReturn(this.watchKey).when(this.watchService).take();
@@ -70,12 +63,19 @@ public abstract class AbstractConfigLoader extends AbstractConcurrentDataBrokerT
             clearEvent();
             return null;
         }).when(this.processor).loadConfiguration(any());
-        final SchemaContext schemaContext = getSchemaContext();
-        this.configLoader = new ConfigLoaderImpl(schemaContext,
-                mappingService, this.fileWatcher);
+        this.configLoader = new ConfigLoaderImpl(getSchemaContext(), this.mappingService.currentSerializer(),
+            this.fileWatcher);
         this.configLoader.init();
     }
 
+    @Override
+    protected final AbstractDataBrokerTestCustomizer createDataBrokerTestCustomizer() {
+        final AbstractDataBrokerTestCustomizer customizer = super.createDataBrokerTestCustomizer();
+        this.mappingService = customizer.getAdapterContext();
+        this.schemaService = customizer.getSchemaService();
+        return customizer;
+    }
+
     private synchronized void clearEvent() {
         this.eventList.clear();
     }
@@ -84,15 +84,13 @@ public abstract class AbstractConfigLoader extends AbstractConcurrentDataBrokerT
         return ClassLoader.getSystemClassLoader().getResource("initial").getPath();
     }
 
-    protected abstract void registerModules(ModuleInfoBackedContext moduleInfoBackedContext) throws Exception;
-
     protected synchronized void triggerEvent(final String filename) {
         doReturn(filename).when(this.watchEvent).context();
         this.eventList.add(this.watchEvent);
     }
 
     @After
-    public final void tearDown() throws Exception {
-        ((ConfigLoaderImpl) this.configLoader).close();
+    public void tearDown() throws Exception {
+        this.configLoader.close();
     }
 }