2 * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
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
8 package org.opendaylight.mdsal.binding.generator.impl;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotEquals;
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;
24 public class SerialVersionHelperTest {
26 public void computeDefaultSUIDTest() {
27 CodegenGeneratedTypeBuilder generatedTypeBuilder = new CodegenGeneratedTypeBuilder(
28 JavaTypeName.create("my.package", "MyName"));
30 MethodSignatureBuilder method = generatedTypeBuilder.addMethod("myMethodName");
31 method.setAccessModifier(AccessModifier.PUBLIC);
32 generatedTypeBuilder.addProperty("myProperty");
33 generatedTypeBuilder.addImplementsType(Types.typeForClass(Serializable.class));
35 assertEquals(6788238694991761868L, SerialVersionHelper.computeDefaultSUID(generatedTypeBuilder));
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);
53 GeneratedTypeBuilder genTypeBuilder2 = new CodegenGeneratedTypeBuilder(
54 JavaTypeName.create("org.opendaylight.yangtools.test2", "TestType2"));
55 long computedSUID2 = SerialVersionHelper.computeDefaultSUID(genTypeBuilder2);
56 assertNotEquals(computedSUID, computedSUID2);