import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import com.google.common.collect.ImmutableSet;
import java.net.URI;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
+import org.opendaylight.yangtools.yang.model.api.ModuleLike;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.Submodule;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement;
import org.opendaylight.yangtools.yang.model.util.FilteringSchemaContextProxy.ModuleId;
public class SchemaContextProxyTest {
Module module2 = mockModule(MODULE2_NAME);
Module module3 = mockModule(MODULE3_NAME);
Module module4 = mockModule(MODULE4_NAME);
- Module module41 = mockModule(MODULE41_NAME);
+ Submodule module41 = mockSubmodule(MODULE41_NAME);
mockSubmodules(module4, module41);
mockModuleImport(module2, moduleConfig, module3);
final Set<DataSchemaNode> childNodes = Collections.singleton(mockedContainer);
doReturn(childNodes).when(moduleConfig).getChildNodes();
- final Set<DataSchemaNode> dataDefinitions = filteringSchemaContextProxy.getDataDefinitions();
+ final Collection<? extends DataSchemaNode> dataDefinitions =
+ filteringSchemaContextProxy.getDataDefinitions();
assertTrue(dataDefinitions.contains(mockedContainer));
}
final Set<NotificationDefinition> notifications = Collections.singleton(mockedNotification);
doReturn(notifications).when(moduleConfig).getNotifications();
- final Set<NotificationDefinition> schemaContextProxyNotifications =
+ final Collection<? extends NotificationDefinition> schemaContextProxyNotifications =
filteringSchemaContextProxy.getNotifications();
assertTrue(schemaContextProxyNotifications.contains(mockedNotification));
}
final Set<RpcDefinition> rpcs = Collections.singleton(mockedRpc);
doReturn(rpcs).when(moduleConfig).getRpcs();
- final Set<RpcDefinition> operations = filteringSchemaContextProxy.getOperations();
+ final Collection<? extends RpcDefinition> operations = filteringSchemaContextProxy.getOperations();
assertTrue(operations.contains(mockedRpc));
}
final List<ExtensionDefinition> extensions = Collections.singletonList(mockedExtension);
doReturn(extensions).when(moduleConfig).getExtensionSchemaNodes();
- final Set<ExtensionDefinition> schemaContextProxyExtensions = filteringSchemaContextProxy.getExtensions();
+ final Collection<? extends ExtensionDefinition> schemaContextProxyExtensions =
+ filteringSchemaContextProxy.getExtensions();
assertTrue(schemaContextProxyExtensions.contains(mockedExtension));
}
final List<UnknownSchemaNode> unknownSchemaNodes = Collections.singletonList(mockedUnknownSchemaNode);
doReturn(unknownSchemaNodes).when(moduleConfig).getUnknownSchemaNodes();
- final List<UnknownSchemaNode> schemaContextProxyUnknownSchemaNodes =
+ final Collection<? extends UnknownSchemaNode> schemaContextProxyUnknownSchemaNodes =
filteringSchemaContextProxy.getUnknownSchemaNodes();
assertTrue(schemaContextProxyUnknownSchemaNodes.contains(mockedUnknownSchemaNode));
}
final Set<TypeDefinition<?>> typeDefinitions = Collections.singleton(mockedTypeDefinition);
doReturn(typeDefinitions).when(moduleConfig).getTypeDefinitions();
- final Set<TypeDefinition<?>> schemaContextProxyTypeDefinitions = filteringSchemaContextProxy
+ final Collection<? extends TypeDefinition<?>> schemaContextProxyTypeDefinitions = filteringSchemaContextProxy
.getTypeDefinitions();
assertTrue(schemaContextProxyTypeDefinitions.contains(mockedTypeDefinition));
}
final Set<DataSchemaNode> childNodes = Collections.singleton(mockedContainer);
doReturn(childNodes).when(moduleConfig).getChildNodes();
- final Set<DataSchemaNode> schemaContextProxyChildNodes = filteringSchemaContextProxy.getChildNodes();
+ final Collection<? extends DataSchemaNode> schemaContextProxyChildNodes =
+ filteringSchemaContextProxy.getChildNodes();
assertTrue(schemaContextProxyChildNodes.contains(mockedContainer));
}
final Set<GroupingDefinition> groupings = Collections.singleton(mockedGrouping);
doReturn(groupings).when(moduleConfig).getGroupings();
- final Set<GroupingDefinition> schemaContextProxyGroupings = filteringSchemaContextProxy.getGroupings();
+ final Collection<? extends GroupingDefinition> schemaContextProxyGroupings =
+ filteringSchemaContextProxy.getGroupings();
assertTrue(schemaContextProxyGroupings.contains(mockedGrouping));
}
final QName qname = QName.create("config-namespace", "2016-08-11", "cont");
final ContainerSchemaNode mockedContainer = mock(ContainerSchemaNode.class);
- doReturn(Optional.of(mockedContainer)).when(moduleConfig).findDataChildByName(any(QName.class));
+ doReturn(mockedContainer).when(moduleConfig).dataChildByName(any(QName.class));
final DataSchemaNode dataSchemaNode = filteringSchemaContextProxy.getDataChildByName(qname);
assertTrue(dataSchemaNode instanceof ContainerSchemaNode);
assertEquals(module, filteringSchemaContextProxy.findModule(module.getName(), module.getRevision())
.get());
- Set<Module> mod = filteringSchemaContextProxy.findModules(module.getNamespace());
+ Collection<? extends Module> mod = filteringSchemaContextProxy.findModules(module.getNamespace());
assertTrue(mod.contains(module));
assertEquals(module, filteringSchemaContextProxy.findModule(module.getNamespace(),
module.getRevision().orElse(null)).get());
return moduleIds;
}
- private static void mockSubmodules(final Module mainModule, final Module... submodules) {
- Set<Module> submodulesSet = new HashSet<>();
+ private static void mockSubmodules(final Module mainModule, final Submodule... submodules) {
+ Set<Submodule> submodulesSet = new HashSet<>();
submodulesSet.addAll(Arrays.asList(submodules));
doReturn(submodulesSet).when(mainModule).getSubmodules();
}
- private static void mockModuleImport(final Module importer, final Module... imports) {
+ private static void mockModuleImport(final ModuleLike importer, final Module... imports) {
Set<ModuleImport> mockedImports = new HashSet<>();
for (final Module module : imports) {
mockedImports.add(new ModuleImport() {
public String toString() {
return String.format("Module: %s, revision:%s", module.getName(), module.getRevision());
}
+
+ @Override
+ public ImportEffectiveStatement asEffectiveStatement() {
+ throw new UnsupportedOperationException();
+ }
});
}
doReturn(mockedImports).when(importer).getImports();
//mock module with default revision
private static Module mockModule(final String name) {
-
Module mockedModule = mock(Module.class);
+ mockModuleLike(mockedModule, name);
+ return mockedModule;
+ }
+
+ private static Submodule mockSubmodule(final String name) {
+ Submodule mockedModule = mock(Submodule.class);
+ mockModuleLike(mockedModule, name);
+ return mockedModule;
+ }
+
+ private static void mockModuleLike(final ModuleLike mockedModule, final String name) {
doReturn(name).when(mockedModule).getName();
doReturn(Optional.of(REVISION)).when(mockedModule).getRevision();
- final URI newNamespace = URI.create(NAMESPACE.toString() + ":" + name);
+ final XMLNamespace newNamespace = XMLNamespace.of(NAMESPACE.toString() + ":" + name);
doReturn(newNamespace).when(mockedModule).getNamespace();
doReturn(QNameModule.create(newNamespace, REVISION)).when(mockedModule).getQNameModule();
doReturn(new HashSet<>()).when(mockedModule).getSubmodules();
doReturn(mockedModule.getQNameModule().toString()).when(mockedModule).toString();
mockModuleImport(mockedModule);
-
- return mockedModule;
}
}