2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
8 package org.opendaylight.controller.model.parser.builder;
\r
10 import static org.junit.Assert.*;
\r
11 import static org.mockito.Mockito.when;
\r
13 import java.net.URI;
\r
14 import java.util.Date;
\r
15 import java.util.HashSet;
\r
16 import java.util.Set;
\r
18 import org.junit.Before;
\r
19 import org.junit.Test;
\r
20 import org.mockito.Mock;
\r
21 import org.mockito.MockitoAnnotations;
\r
22 import org.opendaylight.controller.model.parser.api.GroupingBuilder;
\r
23 import org.opendaylight.controller.model.parser.api.UsesNodeBuilder;
\r
24 import org.opendaylight.controller.model.parser.builder.ContainerSchemaNodeBuilder;
\r
25 import org.opendaylight.controller.model.parser.builder.MustDefinitionBuilder;
\r
26 import org.opendaylight.controller.model.parser.builder.TypedefBuilder;
\r
27 import org.opendaylight.controller.yang.common.QName;
\r
28 import org.opendaylight.controller.yang.model.api.AugmentationSchema;
\r
29 import org.opendaylight.controller.yang.model.api.ConstraintDefinition;
\r
30 import org.opendaylight.controller.yang.model.api.ContainerSchemaNode;
\r
31 import org.opendaylight.controller.yang.model.api.GroupingDefinition;
\r
32 import org.opendaylight.controller.yang.model.api.MustDefinition;
\r
33 import org.opendaylight.controller.yang.model.api.SchemaPath;
\r
34 import org.opendaylight.controller.yang.model.api.Status;
\r
35 import org.opendaylight.controller.yang.model.api.TypeDefinition;
\r
36 import org.opendaylight.controller.yang.model.api.UsesNode;
\r
39 public class ContainerSchemaNodeBuilderTest {
\r
41 private ContainerSchemaNodeBuilder tested;
\r
43 private final String NAME = "test-container";
\r
45 private final URI namespace = URI.create("test:container.name");
\r
46 private final Date revision = new Date();
\r
47 private final String prefix = "x";
\r
49 private SchemaPath schemaPath;
\r
50 private final String description = "description of container";
\r
51 private final String reference = "reference";
\r
53 private QName typedefQName;
\r
54 private TypedefBuilder typeBuilder;
\r
55 @Mock private AugmentationSchema augment;
\r
56 @Mock private ConstraintDefinition constraint;
\r
57 @Mock private UsesNodeBuilder usesBuilder;
\r
58 @Mock private UsesNode uses;
\r
59 @Mock private MustDefinitionBuilder mustBuilder;
\r
60 @Mock private MustDefinition must;
\r
61 @Mock private GroupingBuilder groupingBuilder;
\r
62 @Mock private GroupingDefinition grouping;
\r
65 public void init() {
\r
66 MockitoAnnotations.initMocks(this);
\r
67 when(usesBuilder.build()).thenReturn(uses);
\r
68 when(mustBuilder.build()).thenReturn(must);
\r
69 when(groupingBuilder.build()).thenReturn(grouping);
\r
71 schemaPath = TestUtils.createSchemaPath(true, namespace, "main", "interface");
\r
72 typedefQName = new QName(namespace, "test-type");
\r
73 typeBuilder = new TypedefBuilder(typedefQName);
\r
75 QName qname = new QName(namespace, revision, prefix, NAME);
\r
76 tested = new ContainerSchemaNodeBuilder(qname);
\r
80 public void test() {
\r
81 tested.addTypedef(typeBuilder);
\r
82 tested.setPath(schemaPath);
\r
83 tested.setDescription(description);
\r
84 tested.setReference(reference);
\r
85 tested.setStatus(Status.OBSOLOTE);
\r
86 tested.setConfiguration(false);
\r
87 tested.setConstraints(constraint);
\r
88 tested.addUsesNode(usesBuilder);
\r
89 tested.addAugmentation(augment);
\r
90 tested.setMustDefinitionBuilder(mustBuilder);
\r
91 tested.setPresenceContainer(true);
\r
93 ContainerSchemaNode result = tested.build();
\r
95 Set<TypeDefinition<?>> expectedTypedefs = result.getTypeDefinitions();
\r
96 assertEquals(1, expectedTypedefs.size());
\r
97 assertEquals(typedefQName, expectedTypedefs.iterator().next().getQName());
\r
99 Set<AugmentationSchema> expectedAugments = new HashSet<AugmentationSchema>();
\r
100 expectedAugments.add(augment);
\r
101 assertEquals(expectedAugments, result.getAvailableAugmentations());
\r
103 assertEquals(schemaPath, result.getPath());
\r
104 assertEquals(description, result.getDescription());
\r
105 assertEquals(reference, result.getReference());
\r
106 assertEquals(Status.OBSOLOTE, result.getStatus());
\r
107 assertFalse(result.isConfiguration());
\r
108 assertEquals(constraint, result.getConstraints());
\r
110 Set<UsesNode> expectedUses = new HashSet<UsesNode>();
\r
111 expectedUses.add(uses);
\r
112 assertEquals(expectedUses, result.getUses());
\r
114 assertTrue(result.isPresenceContainer());
\r
115 assertEquals(must, result.getMustDefinition());
\r