Bump versions to 14.0.0-SNAPSHOT
[mdsal.git] / binding / mdsal-binding-generator / src / test / java / org / opendaylight / mdsal / binding / generator / impl / SerialVersionHelperTest.java
1 /*
2  * Copyright (c) 2021 PANTHEON.tech, s.r.o. 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.generator.impl;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotEquals;
12
13 import java.io.Serializable;
14 import org.junit.Test;
15 import org.opendaylight.mdsal.binding.generator.impl.reactor.SerialVersionHelper;
16 import org.opendaylight.mdsal.binding.model.api.AccessModifier;
17 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
18 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder;
19 import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuilder;
20 import org.opendaylight.mdsal.binding.model.ri.Types;
21 import org.opendaylight.mdsal.binding.model.ri.generated.type.builder.CodegenGeneratedTOBuilder;
22 import org.opendaylight.mdsal.binding.model.ri.generated.type.builder.CodegenGeneratedTypeBuilder;
23
24 public class SerialVersionHelperTest {
25     @Test
26     public void computeDefaultSUIDTest() {
27         CodegenGeneratedTypeBuilder generatedTypeBuilder = new CodegenGeneratedTypeBuilder(
28             JavaTypeName.create("my.package", "MyName"));
29
30         MethodSignatureBuilder method = generatedTypeBuilder.addMethod("myMethodName");
31         method.setAccessModifier(AccessModifier.PUBLIC);
32         generatedTypeBuilder.addProperty("myProperty");
33         generatedTypeBuilder.addImplementsType(Types.typeForClass(Serializable.class));
34
35         assertEquals(6788238694991761868L, SerialVersionHelper.computeDefaultSUID(generatedTypeBuilder));
36     }
37
38     @Test
39     public void computeDefaultSUIDStabilityTest() {
40         // test method computeDefaultSUID
41         GeneratedTypeBuilder genTypeBuilder = new CodegenGeneratedTypeBuilder(
42             JavaTypeName.create("org.opendaylight.yangtools.test", "TestType"));
43         genTypeBuilder.addMethod("testMethod");
44         genTypeBuilder.addAnnotation("org.opendaylight.yangtools.test.annotation", "AnnotationTest");
45         genTypeBuilder.addEnclosingTransferObject(new CodegenGeneratedTOBuilder(genTypeBuilder.getIdentifier()
46             .createEnclosed("testObject")).build());
47         genTypeBuilder.addProperty("newProp");
48         GeneratedTypeBuilder genType = new CodegenGeneratedTypeBuilder(
49             JavaTypeName.create("org.opendaylight.yangtools.test", "Type2"));
50         genTypeBuilder.addImplementsType(genType);
51         long computedSUID = SerialVersionHelper.computeDefaultSUID(genTypeBuilder);
52
53         GeneratedTypeBuilder genTypeBuilder2 = new CodegenGeneratedTypeBuilder(
54             JavaTypeName.create("org.opendaylight.yangtools.test2", "TestType2"));
55         long computedSUID2 = SerialVersionHelper.computeDefaultSUID(genTypeBuilder2);
56         assertNotEquals(computedSUID, computedSUID2);
57     }
58 }