2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.model.util;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertTrue;
12 import static org.mockito.ArgumentMatchers.any;
13 import static org.mockito.Mockito.doReturn;
14 import static org.mockito.Mockito.mock;
16 import com.google.common.collect.ImmutableSet;
18 import java.util.Arrays;
19 import java.util.Collection;
20 import java.util.Collections;
21 import java.util.HashSet;
22 import java.util.List;
23 import java.util.Optional;
25 import org.junit.Test;
26 import org.opendaylight.yangtools.concepts.SemVer;
27 import org.opendaylight.yangtools.yang.common.QName;
28 import org.opendaylight.yangtools.yang.common.QNameModule;
29 import org.opendaylight.yangtools.yang.common.Revision;
30 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
31 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
32 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
33 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
34 import org.opendaylight.yangtools.yang.model.api.Module;
35 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
36 import org.opendaylight.yangtools.yang.model.api.ModuleLike;
37 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
38 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
39 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
40 import org.opendaylight.yangtools.yang.model.api.Submodule;
41 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
42 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
43 import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement;
44 import org.opendaylight.yangtools.yang.model.util.FilteringSchemaContextProxy.ModuleId;
46 public class SchemaContextProxyTest {
48 private static final URI NAMESPACE = URI.create("urn:opendaylight:params:xml:ns:yang:controller:config");
49 private static final Revision REVISION = Revision.of("2015-01-01");
50 private static final Revision REVISION2 = Revision.of("2015-01-15");
52 private static final String CONFIG_NAME = "config";
53 private static final String ROOT_NAME = "root";
54 private static final String MODULE2_NAME = "module2";
55 private static final String MODULE3_NAME = "module3";
56 private static final String MODULE4_NAME = "module4";
57 private static final String MODULE41_NAME = "module41";
58 private static final String MODULE5_NAME = "module5";
60 private static SchemaContext mockSchema(final Module... modules) {
61 final List<Module> sortedModules = Arrays.asList(modules);
62 sortedModules.sort(AbstractSchemaContext.NAME_REVISION_COMPARATOR);
63 SchemaContext mock = mock(SchemaContext.class);
64 doReturn(ImmutableSet.copyOf(sortedModules)).when(mock).getModules();
75 public void testBasic() {
76 Module moduleConfig = mockModule(CONFIG_NAME);
77 Module module2 = mockModule(MODULE2_NAME);
78 Module module3 = mockModule(MODULE3_NAME);
80 mockModuleImport(module2, moduleConfig);
81 mockModuleImport(module3, module2, moduleConfig);
83 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
85 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
87 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
91 * No root or additional modules
97 public void testNull() {
98 Module moduleConfig = mockModule(CONFIG_NAME);
99 Module module2 = mockModule(MODULE2_NAME);
100 Module module3 = mockModule(MODULE3_NAME);
102 mockModuleImport(module2, moduleConfig);
103 mockModuleImport(module3, module2, moduleConfig);
105 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
107 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null, null);
108 assertProxyContext(filteringSchemaContextProxy, null);
118 public void testConfigDifferentRevisions() {
119 Module moduleConfigNullRevision = mockModule(CONFIG_NAME, null);
120 Module moduleConfig = mockModule(CONFIG_NAME, REVISION);
121 Module moduleConfig2 = mockModule(CONFIG_NAME, REVISION2);
122 Module module2 = mockModule(MODULE2_NAME);
123 Module module3 = mockModule(MODULE3_NAME);
125 mockModuleImport(module2, moduleConfig);
126 mockModuleImport(module3, module2, moduleConfigNullRevision);
128 SchemaContext schemaContext = mockSchema(moduleConfig, moduleConfig2, module2, module3);
130 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
132 assertProxyContext(filteringSchemaContextProxy, moduleConfig, moduleConfig2, module2, module3);
142 public void testBasicNullRevision() throws Exception {
143 final Module moduleConfig = mockModule(CONFIG_NAME, Revision.of("2013-04-05"));
144 final Module module2 = mockModule(MODULE2_NAME, Revision.of("2014-06-17"));
145 final Module module20 = mockModule(MODULE2_NAME, null);
146 final Module module3 = mockModule(MODULE3_NAME, Revision.of("2014-06-12"));
147 final Module module30 = mockModule(MODULE3_NAME, null);
149 mockModuleImport(module20, moduleConfig);
150 mockModuleImport(module2, moduleConfig);
151 mockModuleImport(module3, module20, moduleConfig);
152 mockModuleImport(module30, module20, moduleConfig);
154 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
156 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
159 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
169 public void testBasicMoreRootModules() {
170 final Module moduleConfig = mockModule(CONFIG_NAME);
171 final Module moduleRoot = mockModule(ROOT_NAME);
172 final Module module2 = mockModule(MODULE2_NAME);
173 final Module module3 = mockModule(MODULE3_NAME);
175 mockModuleImport(module2, moduleConfig);
176 mockModuleImport(module3, moduleRoot);
178 SchemaContext schemaContext = mockSchema(moduleConfig, moduleRoot, module2, module3);
180 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null, moduleRoot,
182 assertProxyContext(filteringSchemaContextProxy, moduleRoot, module3, moduleConfig, module2);
192 public void testChainNotDepend() {
193 Module moduleConfig = mockModule(CONFIG_NAME);
194 Module module2 = mockModule(MODULE2_NAME);
195 Module module3 = mockModule(MODULE3_NAME);
197 mockModuleImport(module2, moduleConfig);
198 mockModuleImport(module3, module2);
200 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
202 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
204 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2);
211 * M2 -> M3 -> M4 -> M5
214 public void testChainDependMulti() {
215 Module moduleConfig = mockModule(CONFIG_NAME);
216 Module module2 = mockModule(MODULE2_NAME);
217 Module module3 = mockModule(MODULE3_NAME);
218 Module module4 = mockModule(MODULE4_NAME);
219 Module module5 = mockModule(MODULE5_NAME);
221 mockModuleImport(module2, moduleConfig, module3);
222 mockModuleImport(module3, module4);
223 mockModuleImport(module4, module5);
225 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4, module5);
227 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
229 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4, module5);
239 public void testChainNotDependMulti() {
240 Module moduleConfig = mockModule(CONFIG_NAME);
241 Module module2 = mockModule(MODULE2_NAME);
242 Module module3 = mockModule(MODULE3_NAME);
243 Module module4 = mockModule(MODULE4_NAME);
245 mockModuleImport(module2, moduleConfig, module3);
246 mockModuleImport(module4, module3);
248 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4);
250 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
252 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
262 public void testChainNotMulti() {
263 final Module moduleConfig = mockModule(CONFIG_NAME);
264 final Module module2 = mockModule(MODULE2_NAME);
265 final Module module3 = mockModule(MODULE3_NAME);
266 final Module module4 = mockModule(MODULE4_NAME);
267 final Module module5 = mockModule(MODULE5_NAME);
269 mockModuleImport(module2, moduleConfig);
270 mockModuleImport(module3, moduleConfig);
271 mockModuleImport(module4, moduleConfig);
272 mockModuleImport(module5, moduleConfig);
274 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4, module5);
276 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
278 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4, module5);
285 * M2 <- M3 M4=M3(Different revision)
288 public void testBasicRevisionChange() throws Exception {
289 Module moduleConfig = mockModule(CONFIG_NAME);
290 Module module2 = mockModule(MODULE2_NAME);
291 Module module3 = mockModule(MODULE3_NAME);
292 Module module4 = mockModule(MODULE3_NAME, Revision.of("2015-10-10"));
294 mockModuleImport(module2, moduleConfig);
295 mockModuleImport(module3, module2, moduleConfig);
297 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4);
299 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
301 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
307 * M2 -(no revision)-> M3(R2) ... M3(R1)
310 public void testImportNoRevision() {
311 Module moduleConfig = mockModule(CONFIG_NAME, REVISION);
312 Module module2 = mockModule(MODULE2_NAME, REVISION);
314 Module module3 = mockModule(MODULE3_NAME, null);
315 Module module30 = mockModule(MODULE3_NAME, REVISION);
316 Module module31 = mockModule(MODULE3_NAME, REVISION2);
317 mockModuleImport(module2, moduleConfig, module3);
319 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module30, module31);
321 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
324 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module31);
336 public void testBasicSubmodule() {
337 Module moduleConfig = mockModule(CONFIG_NAME);
338 Module module2 = mockModule(MODULE2_NAME);
339 Module module3 = mockModule(MODULE3_NAME);
340 Module module4 = mockModule(MODULE4_NAME);
341 Submodule module41 = mockSubmodule(MODULE41_NAME);
343 mockSubmodules(module4, module41);
344 mockModuleImport(module2, moduleConfig, module3);
345 mockModuleImport(module41, moduleConfig);
347 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4);
349 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
351 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4);
355 * M2 -> M3 -> M4 -> M5
358 public void testChainAdditionalModules() {
359 Module module2 = mockModule(MODULE2_NAME);
360 Module module3 = mockModule(MODULE3_NAME);
361 Module module4 = mockModule(MODULE4_NAME);
362 Module module5 = mockModule(MODULE5_NAME);
364 mockModuleImport(module2, module3);
365 mockModuleImport(module3, module4);
366 mockModuleImport(module4, module5);
368 SchemaContext schemaContext = mockSchema(module2, module3, module4, module5);
370 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
371 Collections.singleton(module2), null);
372 assertProxyContext(filteringSchemaContextProxy, module2, module3, module4, module5);
385 public void testChainAdditionalModulesConfig() {
386 Module moduleConfig = mockModule(CONFIG_NAME);
387 Module module2 = mockModule(MODULE2_NAME);
389 Module module3 = mockModule(MODULE3_NAME);
390 Module module4 = mockModule(MODULE4_NAME);
391 Module module5 = mockModule(MODULE5_NAME);
393 mockModuleImport(module2, moduleConfig);
394 mockModuleImport(module3, module4);
396 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4, module5);
398 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
399 Collections.singleton(module3), moduleConfig);
400 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4);
404 public void testGetDataDefinitions() {
405 final Module moduleConfig = mockModule(CONFIG_NAME);
406 final SchemaContext schemaContext = mockSchema(moduleConfig);
407 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
408 new HashSet<>(), moduleConfig);
410 final ContainerSchemaNode mockedContainer = mock(ContainerSchemaNode.class);
411 final Set<DataSchemaNode> childNodes = Collections.singleton(mockedContainer);
412 doReturn(childNodes).when(moduleConfig).getChildNodes();
414 final Collection<? extends DataSchemaNode> dataDefinitions =
415 filteringSchemaContextProxy.getDataDefinitions();
416 assertTrue(dataDefinitions.contains(mockedContainer));
420 public void testGetNotifications() {
421 final Module moduleConfig = mockModule(CONFIG_NAME);
422 final SchemaContext schemaContext = mockSchema(moduleConfig);
423 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
424 new HashSet<>(), moduleConfig);
426 final NotificationDefinition mockedNotification = mock(NotificationDefinition.class);
427 final Set<NotificationDefinition> notifications = Collections.singleton(mockedNotification);
428 doReturn(notifications).when(moduleConfig).getNotifications();
430 final Collection<? extends NotificationDefinition> schemaContextProxyNotifications =
431 filteringSchemaContextProxy.getNotifications();
432 assertTrue(schemaContextProxyNotifications.contains(mockedNotification));
436 public void testGetOperations() {
437 final Module moduleConfig = mockModule(CONFIG_NAME);
438 final SchemaContext schemaContext = mockSchema(moduleConfig);
439 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
440 new HashSet<>(), moduleConfig);
442 final RpcDefinition mockedRpc = mock(RpcDefinition.class);
443 final Set<RpcDefinition> rpcs = Collections.singleton(mockedRpc);
444 doReturn(rpcs).when(moduleConfig).getRpcs();
446 final Collection<? extends RpcDefinition> operations = filteringSchemaContextProxy.getOperations();
447 assertTrue(operations.contains(mockedRpc));
451 public void testGetExtensions() {
452 final Module moduleConfig = mockModule(CONFIG_NAME);
453 final SchemaContext schemaContext = mockSchema(moduleConfig);
454 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
455 new HashSet<>(), moduleConfig);
457 final ExtensionDefinition mockedExtension = mock(ExtensionDefinition.class);
458 final List<ExtensionDefinition> extensions = Collections.singletonList(mockedExtension);
459 doReturn(extensions).when(moduleConfig).getExtensionSchemaNodes();
461 final Collection<? extends ExtensionDefinition> schemaContextProxyExtensions =
462 filteringSchemaContextProxy.getExtensions();
463 assertTrue(schemaContextProxyExtensions.contains(mockedExtension));
467 public void testGetUnknownSchemaNodes() {
468 final Module moduleConfig = mockModule(CONFIG_NAME);
469 final SchemaContext schemaContext = mockSchema(moduleConfig);
470 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
471 new HashSet<>(), moduleConfig);
473 final UnknownSchemaNode mockedUnknownSchemaNode = mock(UnknownSchemaNode.class);
474 final List<UnknownSchemaNode> unknownSchemaNodes = Collections.singletonList(mockedUnknownSchemaNode);
475 doReturn(unknownSchemaNodes).when(moduleConfig).getUnknownSchemaNodes();
477 final Collection<? extends UnknownSchemaNode> schemaContextProxyUnknownSchemaNodes =
478 filteringSchemaContextProxy.getUnknownSchemaNodes();
479 assertTrue(schemaContextProxyUnknownSchemaNodes.contains(mockedUnknownSchemaNode));
483 public void testGetTypeDefinitions() {
484 final Module moduleConfig = mockModule(CONFIG_NAME);
485 final SchemaContext schemaContext = mockSchema(moduleConfig);
486 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
487 new HashSet<>(), moduleConfig);
489 final TypeDefinition<?> mockedTypeDefinition = mock(TypeDefinition.class);
490 final Set<TypeDefinition<?>> typeDefinitions = Collections.singleton(mockedTypeDefinition);
491 doReturn(typeDefinitions).when(moduleConfig).getTypeDefinitions();
493 final Collection<? extends TypeDefinition<?>> schemaContextProxyTypeDefinitions = filteringSchemaContextProxy
494 .getTypeDefinitions();
495 assertTrue(schemaContextProxyTypeDefinitions.contains(mockedTypeDefinition));
499 public void testGetChildNodes() {
500 final Module moduleConfig = mockModule(CONFIG_NAME);
501 final SchemaContext schemaContext = mockSchema(moduleConfig);
502 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
503 new HashSet<>(), moduleConfig);
505 final ContainerSchemaNode mockedContainer = mock(ContainerSchemaNode.class);
506 final Set<DataSchemaNode> childNodes = Collections.singleton(mockedContainer);
507 doReturn(childNodes).when(moduleConfig).getChildNodes();
509 final Collection<? extends DataSchemaNode> schemaContextProxyChildNodes =
510 filteringSchemaContextProxy.getChildNodes();
511 assertTrue(schemaContextProxyChildNodes.contains(mockedContainer));
515 public void testGetGroupings() {
516 final Module moduleConfig = mockModule(CONFIG_NAME);
517 final SchemaContext schemaContext = mockSchema(moduleConfig);
518 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
519 new HashSet<>(), moduleConfig);
521 final GroupingDefinition mockedGrouping = mock(GroupingDefinition.class);
522 final Set<GroupingDefinition> groupings = Collections.singleton(mockedGrouping);
523 doReturn(groupings).when(moduleConfig).getGroupings();
525 final Collection<? extends GroupingDefinition> schemaContextProxyGroupings =
526 filteringSchemaContextProxy.getGroupings();
527 assertTrue(schemaContextProxyGroupings.contains(mockedGrouping));
531 public void testGetDataChildByName() {
532 final Module moduleConfig = mockModule(CONFIG_NAME);
533 final SchemaContext schemaContext = mockSchema(moduleConfig);
534 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
535 new HashSet<>(), moduleConfig);
537 final QName qname = QName.create("config-namespace", "2016-08-11", "cont");
538 final ContainerSchemaNode mockedContainer = mock(ContainerSchemaNode.class);
539 doReturn(Optional.of(mockedContainer)).when(moduleConfig).findDataChildByName(any(QName.class));
541 final DataSchemaNode dataSchemaNode = filteringSchemaContextProxy.getDataChildByName(qname);
542 assertTrue(dataSchemaNode instanceof ContainerSchemaNode);
545 private static void assertProxyContext(final FilteringSchemaContextProxy filteringSchemaContextProxy,
546 final Module... expected) {
548 final Set<Module> modSet = expected != null ? ImmutableSet.copyOf(expected) : new HashSet<>();
549 Set<Module> modSetFiltering = filteringSchemaContextProxy.getModules();
551 assertEquals(modSet, modSetFiltering);
553 //asserting collections
554 if (expected != null) {
555 for (final Module module : expected) {
556 assertEquals(module, filteringSchemaContextProxy.findModule(module.getName(), module.getRevision())
559 Collection<? extends Module> mod = filteringSchemaContextProxy.findModules(module.getNamespace());
560 assertTrue(mod.contains(module));
561 assertEquals(module, filteringSchemaContextProxy.findModule(module.getNamespace(),
562 module.getRevision().orElse(null)).get());
567 private static FilteringSchemaContextProxy createProxySchemaCtx(final SchemaContext schemaContext,
568 final Set<Module> additionalModules, final Module... modules) {
569 Set<Module> modulesSet = new HashSet<>();
570 if (modules != null) {
571 modulesSet = ImmutableSet.copyOf(modules);
574 return new FilteringSchemaContextProxy(schemaContext, createModuleIds(modulesSet),
575 createModuleIds(additionalModules));
578 private static Set<ModuleId> createModuleIds(final Set<Module> modules) {
579 Set<ModuleId> moduleIds = new HashSet<>();
580 if (modules != null) {
581 for (Module module : modules) {
582 moduleIds.add(new ModuleId(module.getName(), module.getRevision()));
589 private static void mockSubmodules(final Module mainModule, final Submodule... submodules) {
590 Set<Submodule> submodulesSet = new HashSet<>();
591 submodulesSet.addAll(Arrays.asList(submodules));
593 doReturn(submodulesSet).when(mainModule).getSubmodules();
596 private static void mockModuleImport(final ModuleLike importer, final Module... imports) {
597 Set<ModuleImport> mockedImports = new HashSet<>();
598 for (final Module module : imports) {
599 mockedImports.add(new ModuleImport() {
601 public String getModuleName() {
602 return module.getName();
606 public Optional<Revision> getRevision() {
607 return module.getRevision();
611 public String getPrefix() {
612 return module.getName();
616 public Optional<SemVer> getSemanticVersion() {
617 return module.getSemanticVersion();
621 public Optional<String> getDescription() {
622 return module.getDescription();
626 public Optional<String> getReference() {
627 return module.getReference();
631 public String toString() {
632 return String.format("Module: %s, revision:%s", module.getName(), module.getRevision());
636 public ImportEffectiveStatement asEffectiveStatement() {
637 throw new UnsupportedOperationException();
641 doReturn(mockedImports).when(importer).getImports();
644 //mock module with revision
645 private static Module mockModule(final String name, final Revision rev) {
647 final Module mod = mockModule(name);
649 doReturn(QNameModule.create(mod.getNamespace(), rev)).when(mod).getQNameModule();
650 doReturn(Optional.ofNullable(rev)).when(mod).getRevision();
651 doReturn(mod.getQNameModule().toString()).when(mod).toString();
656 //mock module with default revision
657 private static Module mockModule(final String name) {
658 Module mockedModule = mock(Module.class);
659 mockModuleLike(mockedModule, name);
663 private static Submodule mockSubmodule(final String name) {
664 Submodule mockedModule = mock(Submodule.class);
665 mockModuleLike(mockedModule, name);
669 private static void mockModuleLike(final ModuleLike mockedModule, final String name) {
670 doReturn(name).when(mockedModule).getName();
671 doReturn(Optional.of(REVISION)).when(mockedModule).getRevision();
672 final URI newNamespace = URI.create(NAMESPACE.toString() + ":" + name);
673 doReturn(newNamespace).when(mockedModule).getNamespace();
674 doReturn(QNameModule.create(newNamespace, REVISION)).when(mockedModule).getQNameModule();
675 doReturn(new HashSet<>()).when(mockedModule).getSubmodules();
676 doReturn(mockedModule.getQNameModule().toString()).when(mockedModule).toString();
677 mockModuleImport(mockedModule);