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.common.XMLNamespace;
31 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
32 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
33 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
34 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
35 import org.opendaylight.yangtools.yang.model.api.Module;
36 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
37 import org.opendaylight.yangtools.yang.model.api.ModuleLike;
38 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
39 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
40 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
41 import org.opendaylight.yangtools.yang.model.api.Submodule;
42 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
43 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
44 import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement;
45 import org.opendaylight.yangtools.yang.model.spi.AbstractSchemaContext;
46 import org.opendaylight.yangtools.yang.model.util.FilteringSchemaContextProxy.ModuleId;
48 public class SchemaContextProxyTest {
50 private static final URI NAMESPACE = URI.create("urn:opendaylight:params:xml:ns:yang:controller:config");
51 private static final Revision REVISION = Revision.of("2015-01-01");
52 private static final Revision REVISION2 = Revision.of("2015-01-15");
54 private static final String CONFIG_NAME = "config";
55 private static final String ROOT_NAME = "root";
56 private static final String MODULE2_NAME = "module2";
57 private static final String MODULE3_NAME = "module3";
58 private static final String MODULE4_NAME = "module4";
59 private static final String MODULE41_NAME = "module41";
60 private static final String MODULE5_NAME = "module5";
62 private static SchemaContext mockSchema(final Module... modules) {
63 final List<Module> sortedModules = Arrays.asList(modules);
64 sortedModules.sort(AbstractSchemaContext.NAME_REVISION_COMPARATOR);
65 SchemaContext mock = mock(SchemaContext.class);
66 doReturn(ImmutableSet.copyOf(sortedModules)).when(mock).getModules();
77 public void testBasic() {
78 Module moduleConfig = mockModule(CONFIG_NAME);
79 Module module2 = mockModule(MODULE2_NAME);
80 Module module3 = mockModule(MODULE3_NAME);
82 mockModuleImport(module2, moduleConfig);
83 mockModuleImport(module3, module2, moduleConfig);
85 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
87 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
89 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
93 * No root or additional modules
99 public void testNull() {
100 Module moduleConfig = mockModule(CONFIG_NAME);
101 Module module2 = mockModule(MODULE2_NAME);
102 Module module3 = mockModule(MODULE3_NAME);
104 mockModuleImport(module2, moduleConfig);
105 mockModuleImport(module3, module2, moduleConfig);
107 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
109 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null, null);
110 assertProxyContext(filteringSchemaContextProxy, null);
120 public void testConfigDifferentRevisions() {
121 Module moduleConfigNullRevision = mockModule(CONFIG_NAME, null);
122 Module moduleConfig = mockModule(CONFIG_NAME, REVISION);
123 Module moduleConfig2 = mockModule(CONFIG_NAME, REVISION2);
124 Module module2 = mockModule(MODULE2_NAME);
125 Module module3 = mockModule(MODULE3_NAME);
127 mockModuleImport(module2, moduleConfig);
128 mockModuleImport(module3, module2, moduleConfigNullRevision);
130 SchemaContext schemaContext = mockSchema(moduleConfig, moduleConfig2, module2, module3);
132 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
134 assertProxyContext(filteringSchemaContextProxy, moduleConfig, moduleConfig2, module2, module3);
144 public void testBasicNullRevision() throws Exception {
145 final Module moduleConfig = mockModule(CONFIG_NAME, Revision.of("2013-04-05"));
146 final Module module2 = mockModule(MODULE2_NAME, Revision.of("2014-06-17"));
147 final Module module20 = mockModule(MODULE2_NAME, null);
148 final Module module3 = mockModule(MODULE3_NAME, Revision.of("2014-06-12"));
149 final Module module30 = mockModule(MODULE3_NAME, null);
151 mockModuleImport(module20, moduleConfig);
152 mockModuleImport(module2, moduleConfig);
153 mockModuleImport(module3, module20, moduleConfig);
154 mockModuleImport(module30, module20, moduleConfig);
156 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
158 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
161 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
171 public void testBasicMoreRootModules() {
172 final Module moduleConfig = mockModule(CONFIG_NAME);
173 final Module moduleRoot = mockModule(ROOT_NAME);
174 final Module module2 = mockModule(MODULE2_NAME);
175 final Module module3 = mockModule(MODULE3_NAME);
177 mockModuleImport(module2, moduleConfig);
178 mockModuleImport(module3, moduleRoot);
180 SchemaContext schemaContext = mockSchema(moduleConfig, moduleRoot, module2, module3);
182 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null, moduleRoot,
184 assertProxyContext(filteringSchemaContextProxy, moduleRoot, module3, moduleConfig, module2);
194 public void testChainNotDepend() {
195 Module moduleConfig = mockModule(CONFIG_NAME);
196 Module module2 = mockModule(MODULE2_NAME);
197 Module module3 = mockModule(MODULE3_NAME);
199 mockModuleImport(module2, moduleConfig);
200 mockModuleImport(module3, module2);
202 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3);
204 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
206 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2);
213 * M2 -> M3 -> M4 -> M5
216 public void testChainDependMulti() {
217 Module moduleConfig = mockModule(CONFIG_NAME);
218 Module module2 = mockModule(MODULE2_NAME);
219 Module module3 = mockModule(MODULE3_NAME);
220 Module module4 = mockModule(MODULE4_NAME);
221 Module module5 = mockModule(MODULE5_NAME);
223 mockModuleImport(module2, moduleConfig, module3);
224 mockModuleImport(module3, module4);
225 mockModuleImport(module4, module5);
227 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4, module5);
229 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
231 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4, module5);
241 public void testChainNotDependMulti() {
242 Module moduleConfig = mockModule(CONFIG_NAME);
243 Module module2 = mockModule(MODULE2_NAME);
244 Module module3 = mockModule(MODULE3_NAME);
245 Module module4 = mockModule(MODULE4_NAME);
247 mockModuleImport(module2, moduleConfig, module3);
248 mockModuleImport(module4, module3);
250 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4);
252 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
254 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
264 public void testChainNotMulti() {
265 final Module moduleConfig = mockModule(CONFIG_NAME);
266 final Module module2 = mockModule(MODULE2_NAME);
267 final Module module3 = mockModule(MODULE3_NAME);
268 final Module module4 = mockModule(MODULE4_NAME);
269 final Module module5 = mockModule(MODULE5_NAME);
271 mockModuleImport(module2, moduleConfig);
272 mockModuleImport(module3, moduleConfig);
273 mockModuleImport(module4, moduleConfig);
274 mockModuleImport(module5, moduleConfig);
276 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4, module5);
278 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
280 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4, module5);
287 * M2 <- M3 M4=M3(Different revision)
290 public void testBasicRevisionChange() throws Exception {
291 Module moduleConfig = mockModule(CONFIG_NAME);
292 Module module2 = mockModule(MODULE2_NAME);
293 Module module3 = mockModule(MODULE3_NAME);
294 Module module4 = mockModule(MODULE3_NAME, Revision.of("2015-10-10"));
296 mockModuleImport(module2, moduleConfig);
297 mockModuleImport(module3, module2, moduleConfig);
299 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4);
301 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
303 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3);
309 * M2 -(no revision)-> M3(R2) ... M3(R1)
312 public void testImportNoRevision() {
313 Module moduleConfig = mockModule(CONFIG_NAME, REVISION);
314 Module module2 = mockModule(MODULE2_NAME, REVISION);
316 Module module3 = mockModule(MODULE3_NAME, null);
317 Module module30 = mockModule(MODULE3_NAME, REVISION);
318 Module module31 = mockModule(MODULE3_NAME, REVISION2);
319 mockModuleImport(module2, moduleConfig, module3);
321 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module30, module31);
323 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
326 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module31);
338 public void testBasicSubmodule() {
339 Module moduleConfig = mockModule(CONFIG_NAME);
340 Module module2 = mockModule(MODULE2_NAME);
341 Module module3 = mockModule(MODULE3_NAME);
342 Module module4 = mockModule(MODULE4_NAME);
343 Submodule module41 = mockSubmodule(MODULE41_NAME);
345 mockSubmodules(module4, module41);
346 mockModuleImport(module2, moduleConfig, module3);
347 mockModuleImport(module41, moduleConfig);
349 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4);
351 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext, null,
353 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4);
357 * M2 -> M3 -> M4 -> M5
360 public void testChainAdditionalModules() {
361 Module module2 = mockModule(MODULE2_NAME);
362 Module module3 = mockModule(MODULE3_NAME);
363 Module module4 = mockModule(MODULE4_NAME);
364 Module module5 = mockModule(MODULE5_NAME);
366 mockModuleImport(module2, module3);
367 mockModuleImport(module3, module4);
368 mockModuleImport(module4, module5);
370 SchemaContext schemaContext = mockSchema(module2, module3, module4, module5);
372 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
373 Collections.singleton(module2), null);
374 assertProxyContext(filteringSchemaContextProxy, module2, module3, module4, module5);
387 public void testChainAdditionalModulesConfig() {
388 Module moduleConfig = mockModule(CONFIG_NAME);
389 Module module2 = mockModule(MODULE2_NAME);
391 Module module3 = mockModule(MODULE3_NAME);
392 Module module4 = mockModule(MODULE4_NAME);
393 Module module5 = mockModule(MODULE5_NAME);
395 mockModuleImport(module2, moduleConfig);
396 mockModuleImport(module3, module4);
398 SchemaContext schemaContext = mockSchema(moduleConfig, module2, module3, module4, module5);
400 FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
401 Collections.singleton(module3), moduleConfig);
402 assertProxyContext(filteringSchemaContextProxy, moduleConfig, module2, module3, module4);
406 public void testGetDataDefinitions() {
407 final Module moduleConfig = mockModule(CONFIG_NAME);
408 final SchemaContext schemaContext = mockSchema(moduleConfig);
409 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
410 new HashSet<>(), moduleConfig);
412 final ContainerSchemaNode mockedContainer = mock(ContainerSchemaNode.class);
413 final Set<DataSchemaNode> childNodes = Collections.singleton(mockedContainer);
414 doReturn(childNodes).when(moduleConfig).getChildNodes();
416 final Collection<? extends DataSchemaNode> dataDefinitions =
417 filteringSchemaContextProxy.getDataDefinitions();
418 assertTrue(dataDefinitions.contains(mockedContainer));
422 public void testGetNotifications() {
423 final Module moduleConfig = mockModule(CONFIG_NAME);
424 final SchemaContext schemaContext = mockSchema(moduleConfig);
425 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
426 new HashSet<>(), moduleConfig);
428 final NotificationDefinition mockedNotification = mock(NotificationDefinition.class);
429 final Set<NotificationDefinition> notifications = Collections.singleton(mockedNotification);
430 doReturn(notifications).when(moduleConfig).getNotifications();
432 final Collection<? extends NotificationDefinition> schemaContextProxyNotifications =
433 filteringSchemaContextProxy.getNotifications();
434 assertTrue(schemaContextProxyNotifications.contains(mockedNotification));
438 public void testGetOperations() {
439 final Module moduleConfig = mockModule(CONFIG_NAME);
440 final SchemaContext schemaContext = mockSchema(moduleConfig);
441 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
442 new HashSet<>(), moduleConfig);
444 final RpcDefinition mockedRpc = mock(RpcDefinition.class);
445 final Set<RpcDefinition> rpcs = Collections.singleton(mockedRpc);
446 doReturn(rpcs).when(moduleConfig).getRpcs();
448 final Collection<? extends RpcDefinition> operations = filteringSchemaContextProxy.getOperations();
449 assertTrue(operations.contains(mockedRpc));
453 public void testGetExtensions() {
454 final Module moduleConfig = mockModule(CONFIG_NAME);
455 final SchemaContext schemaContext = mockSchema(moduleConfig);
456 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
457 new HashSet<>(), moduleConfig);
459 final ExtensionDefinition mockedExtension = mock(ExtensionDefinition.class);
460 final List<ExtensionDefinition> extensions = Collections.singletonList(mockedExtension);
461 doReturn(extensions).when(moduleConfig).getExtensionSchemaNodes();
463 final Collection<? extends ExtensionDefinition> schemaContextProxyExtensions =
464 filteringSchemaContextProxy.getExtensions();
465 assertTrue(schemaContextProxyExtensions.contains(mockedExtension));
469 public void testGetUnknownSchemaNodes() {
470 final Module moduleConfig = mockModule(CONFIG_NAME);
471 final SchemaContext schemaContext = mockSchema(moduleConfig);
472 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
473 new HashSet<>(), moduleConfig);
475 final UnknownSchemaNode mockedUnknownSchemaNode = mock(UnknownSchemaNode.class);
476 final List<UnknownSchemaNode> unknownSchemaNodes = Collections.singletonList(mockedUnknownSchemaNode);
477 doReturn(unknownSchemaNodes).when(moduleConfig).getUnknownSchemaNodes();
479 final Collection<? extends UnknownSchemaNode> schemaContextProxyUnknownSchemaNodes =
480 filteringSchemaContextProxy.getUnknownSchemaNodes();
481 assertTrue(schemaContextProxyUnknownSchemaNodes.contains(mockedUnknownSchemaNode));
485 public void testGetTypeDefinitions() {
486 final Module moduleConfig = mockModule(CONFIG_NAME);
487 final SchemaContext schemaContext = mockSchema(moduleConfig);
488 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
489 new HashSet<>(), moduleConfig);
491 final TypeDefinition<?> mockedTypeDefinition = mock(TypeDefinition.class);
492 final Set<TypeDefinition<?>> typeDefinitions = Collections.singleton(mockedTypeDefinition);
493 doReturn(typeDefinitions).when(moduleConfig).getTypeDefinitions();
495 final Collection<? extends TypeDefinition<?>> schemaContextProxyTypeDefinitions = filteringSchemaContextProxy
496 .getTypeDefinitions();
497 assertTrue(schemaContextProxyTypeDefinitions.contains(mockedTypeDefinition));
501 public void testGetChildNodes() {
502 final Module moduleConfig = mockModule(CONFIG_NAME);
503 final SchemaContext schemaContext = mockSchema(moduleConfig);
504 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
505 new HashSet<>(), moduleConfig);
507 final ContainerSchemaNode mockedContainer = mock(ContainerSchemaNode.class);
508 final Set<DataSchemaNode> childNodes = Collections.singleton(mockedContainer);
509 doReturn(childNodes).when(moduleConfig).getChildNodes();
511 final Collection<? extends DataSchemaNode> schemaContextProxyChildNodes =
512 filteringSchemaContextProxy.getChildNodes();
513 assertTrue(schemaContextProxyChildNodes.contains(mockedContainer));
517 public void testGetGroupings() {
518 final Module moduleConfig = mockModule(CONFIG_NAME);
519 final SchemaContext schemaContext = mockSchema(moduleConfig);
520 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
521 new HashSet<>(), moduleConfig);
523 final GroupingDefinition mockedGrouping = mock(GroupingDefinition.class);
524 final Set<GroupingDefinition> groupings = Collections.singleton(mockedGrouping);
525 doReturn(groupings).when(moduleConfig).getGroupings();
527 final Collection<? extends GroupingDefinition> schemaContextProxyGroupings =
528 filteringSchemaContextProxy.getGroupings();
529 assertTrue(schemaContextProxyGroupings.contains(mockedGrouping));
533 public void testGetDataChildByName() {
534 final Module moduleConfig = mockModule(CONFIG_NAME);
535 final SchemaContext schemaContext = mockSchema(moduleConfig);
536 final FilteringSchemaContextProxy filteringSchemaContextProxy = createProxySchemaCtx(schemaContext,
537 new HashSet<>(), moduleConfig);
539 final QName qname = QName.create("config-namespace", "2016-08-11", "cont");
540 final ContainerSchemaNode mockedContainer = mock(ContainerSchemaNode.class);
541 doReturn(mockedContainer).when(moduleConfig).dataChildByName(any(QName.class));
543 final DataSchemaNode dataSchemaNode = filteringSchemaContextProxy.getDataChildByName(qname);
544 assertTrue(dataSchemaNode instanceof ContainerSchemaNode);
547 private static void assertProxyContext(final FilteringSchemaContextProxy filteringSchemaContextProxy,
548 final Module... expected) {
550 final Set<Module> modSet = expected != null ? ImmutableSet.copyOf(expected) : new HashSet<>();
551 Set<Module> modSetFiltering = filteringSchemaContextProxy.getModules();
553 assertEquals(modSet, modSetFiltering);
555 //asserting collections
556 if (expected != null) {
557 for (final Module module : expected) {
558 assertEquals(module, filteringSchemaContextProxy.findModule(module.getName(), module.getRevision())
561 Collection<? extends Module> mod = filteringSchemaContextProxy.findModules(module.getNamespace());
562 assertTrue(mod.contains(module));
563 assertEquals(module, filteringSchemaContextProxy.findModule(module.getNamespace(),
564 module.getRevision().orElse(null)).get());
569 private static FilteringSchemaContextProxy createProxySchemaCtx(final SchemaContext schemaContext,
570 final Set<Module> additionalModules, final Module... modules) {
571 Set<Module> modulesSet = new HashSet<>();
572 if (modules != null) {
573 modulesSet = ImmutableSet.copyOf(modules);
576 return new FilteringSchemaContextProxy(schemaContext, createModuleIds(modulesSet),
577 createModuleIds(additionalModules));
580 private static Set<ModuleId> createModuleIds(final Set<Module> modules) {
581 Set<ModuleId> moduleIds = new HashSet<>();
582 if (modules != null) {
583 for (Module module : modules) {
584 moduleIds.add(new ModuleId(module.getName(), module.getRevision()));
591 private static void mockSubmodules(final Module mainModule, final Submodule... submodules) {
592 Set<Submodule> submodulesSet = new HashSet<>();
593 submodulesSet.addAll(Arrays.asList(submodules));
595 doReturn(submodulesSet).when(mainModule).getSubmodules();
598 private static void mockModuleImport(final ModuleLike importer, final Module... imports) {
599 Set<ModuleImport> mockedImports = new HashSet<>();
600 for (final Module module : imports) {
601 mockedImports.add(new ModuleImport() {
603 public String getModuleName() {
604 return module.getName();
608 public Optional<Revision> getRevision() {
609 return module.getRevision();
613 public String getPrefix() {
614 return module.getName();
618 public Optional<SemVer> getSemanticVersion() {
619 return module.getSemanticVersion();
623 public Optional<String> getDescription() {
624 return module.getDescription();
628 public Optional<String> getReference() {
629 return module.getReference();
633 public String toString() {
634 return String.format("Module: %s, revision:%s", module.getName(), module.getRevision());
638 public ImportEffectiveStatement asEffectiveStatement() {
639 throw new UnsupportedOperationException();
643 doReturn(mockedImports).when(importer).getImports();
646 //mock module with revision
647 private static Module mockModule(final String name, final Revision rev) {
649 final Module mod = mockModule(name);
651 doReturn(QNameModule.create(mod.getNamespace(), rev)).when(mod).getQNameModule();
652 doReturn(Optional.ofNullable(rev)).when(mod).getRevision();
653 doReturn(mod.getQNameModule().toString()).when(mod).toString();
658 //mock module with default revision
659 private static Module mockModule(final String name) {
660 Module mockedModule = mock(Module.class);
661 mockModuleLike(mockedModule, name);
665 private static Submodule mockSubmodule(final String name) {
666 Submodule mockedModule = mock(Submodule.class);
667 mockModuleLike(mockedModule, name);
671 private static void mockModuleLike(final ModuleLike mockedModule, final String name) {
672 doReturn(name).when(mockedModule).getName();
673 doReturn(Optional.of(REVISION)).when(mockedModule).getRevision();
674 final XMLNamespace newNamespace = XMLNamespace.of(NAMESPACE.toString() + ":" + name);
675 doReturn(newNamespace).when(mockedModule).getNamespace();
676 doReturn(QNameModule.create(newNamespace, REVISION)).when(mockedModule).getQNameModule();
677 doReturn(new HashSet<>()).when(mockedModule).getSubmodules();
678 doReturn(mockedModule.getQNameModule().toString()).when(mockedModule).toString();
679 mockModuleImport(mockedModule);