2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3 * This program and the accompanying materials are made available under the
4 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
5 * and is available at http://www.eclipse.org/legal/epl-v10.html
7 package org.opendaylight.yangtools.yang.parser.builder.impl;
9 import static org.junit.Assert.assertEquals;
10 import static org.junit.Assert.assertFalse;
11 import static org.junit.Assert.assertNotEquals;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertNull;
14 import static org.junit.Assert.assertTrue;
15 import org.junit.Test;
16 import org.opendaylight.yangtools.yang.common.QName;
17 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
18 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
19 import org.opendaylight.yangtools.yang.model.api.Status;
20 import org.opendaylight.yangtools.yang.model.util.Uint16;
21 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
22 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
23 import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
25 * Test suite for increasing of test coverage of RpcDefinitionBuilder implementation.
27 * @see org.opendaylight.yangtools.yang.parser.builder.impl.RpcDefinitionBuilder
29 * @author Lukas Sedlak <lsedlak@cisco.com>
31 public class RpcDefinitionBuilderTest extends AbstractBuilderTest {
34 public void testBuild() {
35 final QName rpcQName = QName.create(module.getNamespace(), module.getRevision(), "send-message");
36 SchemaPath rpcPath = SchemaPath.create(true, rpcQName);
37 final RpcDefinitionBuilder rpcBuilder = new RpcDefinitionBuilder(module.getModuleName(), 10, rpcQName, rpcPath);
39 final QName testTypedef = QName.create(module.getNamespace(), module.getRevision(), "test-typedef");
40 final SchemaPath testTypedefPath = SchemaPath.create(true, rpcQName, testTypedef);
41 final TypeDefinitionBuilder typedefBuilder = new TypeDefinitionBuilderImpl(module.getModuleName(),
42 12, testTypedef, testTypedefPath);
43 typedefBuilder.setType(Uint16.getInstance());
45 rpcBuilder.addTypedef(typedefBuilder);
47 final QName testGroup = QName.create(module.getNamespace(), module.getRevision(), "test-group");
48 final SchemaPath groupPath = SchemaPath.create(true, rpcQName, testGroup);
49 final GroupingBuilder groupBuilder = new GroupingBuilderImpl(module.getModuleName(), 15, testGroup, groupPath);
51 rpcBuilder.addGrouping(groupBuilder);
53 final QName unknownNode = QName.create(module.getNamespace(), module.getRevision(), "unknown-ext-use");
54 final SchemaPath unknownNodePath = SchemaPath.create(true, rpcQName, unknownNode);
55 final UnknownSchemaNodeBuilder unknownNodeBuilder = new UnknownSchemaNodeBuilderImpl(module.getModuleName(),
56 25, unknownNode, unknownNodePath);
58 rpcBuilder.addUnknownNodeBuilder(unknownNodeBuilder);
60 final RpcDefinitionBuilder rpcBuilder2 = new RpcDefinitionBuilder(module.getModuleName(), 10, rpcQName, rpcPath);
61 final RpcDefinitionBuilder rpcBuilder3 = new RpcDefinitionBuilder(module.getModuleName(), 10, unknownNode, rpcPath);
62 final RpcDefinitionBuilder rpcBuilder4 = new RpcDefinitionBuilder(module.getModuleName(), 10, rpcQName, unknownNodePath);
64 assertEquals(rpcBuilder, rpcBuilder2);
65 assertNotEquals(rpcBuilder, null);
66 assertNotEquals(rpcBuilder, rpcBuilder3);
67 assertNotEquals(rpcBuilder, rpcBuilder4);
69 assertEquals(rpcBuilder.toString(), "rpc send-message");
71 final RpcDefinition instance = rpcBuilder.build();
73 assertNotNull(instance);
75 final RpcDefinition sameInstance = rpcBuilder.build();
76 assertTrue(sameInstance == instance);
77 assertEquals(sameInstance, instance);
79 assertEquals(instance.getPath(), rpcPath);
80 assertEquals(instance.getStatus(), Status.CURRENT);
81 assertNull(instance.getOutput());
82 assertFalse(instance.getTypeDefinitions().isEmpty());
83 assertFalse(instance.getGroupings().isEmpty());
84 assertFalse(instance.getUnknownSchemaNodes().isEmpty());
86 assertEquals(instance.getTypeDefinitions().size(), 1);
87 assertEquals(instance.getGroupings().size(), 1);
88 assertEquals(instance.getUnknownSchemaNodes().size(), 1);
90 RpcDefinition instance2 = rpcBuilder2.build();
91 RpcDefinition instance3 = rpcBuilder3.build();
92 RpcDefinition instance4 = rpcBuilder4.build();
94 assertEquals(instance, instance2);
95 assertNotEquals(instance, null);
96 assertNotEquals(instance, instance3);
97 assertNotEquals(instance, instance4);
99 assertEquals(instance.toString(), "RpcDefinitionImpl[qname=(urn:opendaylight.rpc:def:test-model?" +
100 "revision=2014-01-06)send-message, path=AbsoluteSchemaPath{path=[(urn:opendaylight.rpc:def:test-model?" +
101 "revision=2014-01-06)send-message]}, input=null, output=null]");