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.*;
10 import static org.junit.Assert.assertEquals;
13 import java.text.DateFormat;
14 import java.text.SimpleDateFormat;
15 import java.util.Date;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.opendaylight.yangtools.yang.common.QName;
19 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
20 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
21 import org.opendaylight.yangtools.yang.model.api.Status;
22 import org.opendaylight.yangtools.yang.model.util.Uint16;
23 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
24 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
25 import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
28 * Test suite for increasing of test coverage of RpcDefinitionBuilder implementation.
30 * @see org.opendaylight.yangtools.yang.parser.builder.impl.RpcDefinitionBuilder
32 * @author Lukas Sedlak <lsedlak@cisco.com>
34 public class RpcDefinitionBuilderTest extends AbstractBuilderTest {
37 public void testBuild() {
38 final QName rpcQName = QName.create(module.getNamespace(), module.getRevision(), "send-message");
39 SchemaPath rpcPath = SchemaPath.create(true, rpcQName);
40 final RpcDefinitionBuilder rpcBuilder = new RpcDefinitionBuilder(module.getModuleName(), 10, rpcQName, rpcPath);
42 final QName testTypedef = QName.create(module.getNamespace(), module.getRevision(), "test-typedef");
43 final SchemaPath testTypedefPath = SchemaPath.create(true, rpcQName, testTypedef);
44 final TypeDefinitionBuilder typedefBuilder = new TypeDefinitionBuilderImpl(module.getModuleName(),
45 12, testTypedef, testTypedefPath);
46 typedefBuilder.setType(Uint16.getInstance());
48 rpcBuilder.addTypedef(typedefBuilder);
50 final QName testGroup = QName.create(module.getNamespace(), module.getRevision(), "test-group");
51 final SchemaPath groupPath = SchemaPath.create(true, rpcQName, testGroup);
52 final GroupingBuilder groupBuilder = new GroupingBuilderImpl(module.getModuleName(), 15, testGroup, groupPath);
54 rpcBuilder.addGrouping(groupBuilder);
56 final QName unknownNode = QName.create(module.getNamespace(), module.getRevision(), "unknown-ext-use");
57 final SchemaPath unknownNodePath = SchemaPath.create(true, rpcQName, unknownNode);
58 final UnknownSchemaNodeBuilder unknownNodeBuilder = new UnknownSchemaNodeBuilderImpl(module.getModuleName(),
59 25, unknownNode, unknownNodePath);
61 rpcBuilder.addUnknownNodeBuilder(unknownNodeBuilder);
63 final RpcDefinitionBuilder rpcBuilder2 = new RpcDefinitionBuilder(module.getModuleName(), 10, rpcQName, rpcPath);
64 final RpcDefinitionBuilder rpcBuilder3 = new RpcDefinitionBuilder(module.getModuleName(), 10, unknownNode, rpcPath);
65 final RpcDefinitionBuilder rpcBuilder4 = new RpcDefinitionBuilder(module.getModuleName(), 10, rpcQName, unknownNodePath);
67 assertEquals(rpcBuilder, rpcBuilder2);
68 assertNotEquals(rpcBuilder, null);
69 assertNotEquals(rpcBuilder, rpcBuilder3);
70 assertNotEquals(rpcBuilder, rpcBuilder4);
72 assertEquals(rpcBuilder.toString(), "rpc send-message");
74 final RpcDefinition instance = rpcBuilder.build();
76 assertNotNull(instance);
78 final RpcDefinition sameInstance = rpcBuilder.build();
79 assertTrue(sameInstance == instance);
80 assertEquals(sameInstance, instance);
82 assertEquals(instance.getPath(), rpcPath);
83 assertEquals(instance.getStatus(), Status.CURRENT);
84 assertNull(instance.getOutput());
85 assertFalse(instance.getTypeDefinitions().isEmpty());
86 assertFalse(instance.getGroupings().isEmpty());
87 assertFalse(instance.getUnknownSchemaNodes().isEmpty());
89 assertEquals(instance.getTypeDefinitions().size(), 1);
90 assertEquals(instance.getGroupings().size(), 1);
91 assertEquals(instance.getUnknownSchemaNodes().size(), 1);
93 RpcDefinition instance2 = rpcBuilder2.build();
94 RpcDefinition instance3 = rpcBuilder3.build();
95 RpcDefinition instance4 = rpcBuilder4.build();
97 assertEquals(instance, instance2);
98 assertNotEquals(instance, null);
99 assertNotEquals(instance, instance3);
100 assertNotEquals(instance, instance4);
102 assertEquals(instance.toString(), "RpcDefinitionImpl[qname=(urn:opendaylight.rpc:def:test-model?" +
103 "revision=2014-01-06)send-message, path=AbsoluteSchemaPath{path=[(urn:opendaylight.rpc:def:test-model?" +
104 "revision=2014-01-06)send-message]}, input=null, output=null]");