Integrate JavaTypeName as Identifier
[mdsal.git] / binding / mdsal-binding-generator-util / src / test / java / org / opendaylight / mdsal / binding / model / util / generated / type / builder / MethodSignatureBuilderImplTest.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.mdsal.binding.model.util.generated.type.builder;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertTrue;
14
15 import org.junit.Test;
16 import org.opendaylight.mdsal.binding.model.api.MethodSignature;
17 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
18
19 public class MethodSignatureBuilderImplTest {
20
21     @Test
22     public void testCreateNewInstance() {
23         final MethodSignatureBuilderImpl signatureBuilderImpl = new MethodSignatureBuilderImpl("testMethod");
24         assertNotNull(signatureBuilderImpl);
25     }
26
27     @Test
28     public void testSetAbstractMethod() {
29         final MethodSignatureBuilderImpl signatureBuilderImpl = new MethodSignatureBuilderImpl("testMethod");
30         signatureBuilderImpl.setAbstract(true);
31         final MethodSignature methodSignature = signatureBuilderImpl.toInstance(null);
32         assertTrue(methodSignature.isAbstract());
33     }
34
35     @Test
36     public void testAddParameterMethod() {
37         final MethodSignatureBuilderImpl signatureBuilderImpl = new MethodSignatureBuilderImpl("testMethod");
38         final CodegenGeneratedTypeBuilder ipAddressType = new CodegenGeneratedTypeBuilder(
39             JavaTypeName.create("org.opendaylight.yangtools.test", "IpAddress"));
40         signatureBuilderImpl.addParameter(ipAddressType, "ipAddress");
41         final MethodSignature methodSignature = signatureBuilderImpl.toInstance(null);
42         assertEquals("ipAddress", methodSignature.getParameters().get(0).getName());
43     }
44
45     @Test
46     public void testHashCodeEqualsToStringMethods() {
47         final MethodSignatureBuilderImpl signatureBuilderImpl = new MethodSignatureBuilderImpl("testMethod");
48         final MethodSignatureBuilderImpl signatureBuilderImpl2 = new MethodSignatureBuilderImpl("testMethod");
49         final MethodSignatureBuilderImpl signatureBuilderImpl3 = new MethodSignatureBuilderImpl("testMethod2");
50         final MethodSignatureBuilderImpl signatureBuilderImpl4 = new MethodSignatureBuilderImpl(null);
51         final MethodSignatureBuilderImpl signatureBuilderImpl5 = signatureBuilderImpl;
52         final MethodSignatureBuilderImpl signatureBuilderImpl6 = new MethodSignatureBuilderImpl("testMethod");
53         final CodegenGeneratedTypeBuilder returnType = new CodegenGeneratedTypeBuilder(
54             JavaTypeName.create("org.opendaylight.yangtools.test", "Address"));
55         signatureBuilderImpl6.setReturnType(returnType);
56
57         assertEquals(signatureBuilderImpl.hashCode(), signatureBuilderImpl2.hashCode());
58
59         assertTrue(signatureBuilderImpl.equals(signatureBuilderImpl2));
60         assertFalse(signatureBuilderImpl.equals(signatureBuilderImpl3));
61         assertFalse(signatureBuilderImpl.equals(signatureBuilderImpl4));
62         assertFalse(signatureBuilderImpl4.equals(signatureBuilderImpl));
63         assertTrue(signatureBuilderImpl.equals(signatureBuilderImpl5));
64         assertFalse(signatureBuilderImpl4.equals("test"));
65         assertFalse(signatureBuilderImpl4.equals(signatureBuilderImpl));
66         assertFalse(signatureBuilderImpl6.equals(signatureBuilderImpl));
67         assertFalse(signatureBuilderImpl.equals(signatureBuilderImpl6));
68
69         assertNotNull(signatureBuilderImpl.toString());
70     }
71 }