Merge "removed dead code that was causing a warning"
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / test / java / org / opendaylight / controller / model / parser / builder / ContainerSchemaNodeBuilderTest.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\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
7  */\r
8 package org.opendaylight.controller.model.parser.builder;\r
9 \r
10 import static org.junit.Assert.*;\r
11 import static org.mockito.Mockito.when;\r
12 \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
17 \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
37 \r
38 \r
39 public class ContainerSchemaNodeBuilderTest {\r
40 \r
41         private ContainerSchemaNodeBuilder tested;\r
42 \r
43         private final String NAME = "test-container";\r
44 \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
48 \r
49         private SchemaPath schemaPath;\r
50         private final String description = "description of container";\r
51         private final String reference = "reference";\r
52 \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
63 \r
64         @Before\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
70 \r
71                 schemaPath = TestUtils.createSchemaPath(true, namespace, "main", "interface");\r
72                 typedefQName = new QName(namespace, "test-type");\r
73                 typeBuilder = new TypedefBuilder(typedefQName);\r
74 \r
75                 QName qname = new QName(namespace, revision, prefix, NAME);\r
76                 tested = new ContainerSchemaNodeBuilder(qname);\r
77         }\r
78 \r
79         @Test\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
92 \r
93                 ContainerSchemaNode result = tested.build();\r
94 \r
95                 Set<TypeDefinition<?>> expectedTypedefs = result.getTypeDefinitions();\r
96                 assertEquals(1, expectedTypedefs.size());\r
97                 assertEquals(typedefQName, expectedTypedefs.iterator().next().getQName());\r
98 \r
99                 Set<AugmentationSchema> expectedAugments = new HashSet<AugmentationSchema>();\r
100                 expectedAugments.add(augment);\r
101                 assertEquals(expectedAugments, result.getAvailableAugmentations());\r
102 \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
109 \r
110                 Set<UsesNode> expectedUses = new HashSet<UsesNode>();\r
111                 expectedUses.add(uses);\r
112                 assertEquals(expectedUses, result.getUses());\r
113 \r
114                 assertTrue(result.isPresenceContainer());\r
115                 assertEquals(must, result.getMustDefinition());\r
116         }\r
117 \r
118 }\r