2 * ========================LICENSE_START=================================
5 * Copyright (C) 2023 Nordix Foundation
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ========================LICENSE_END===================================
21 package org.oran.pmlog.configuration;
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.junit.jupiter.api.Assertions.assertEquals;
25 import static org.junit.jupiter.api.Assertions.assertNotNull;
27 import com.google.gson.Gson;
28 import java.util.Arrays;
29 import java.util.HashSet;
31 import org.junit.jupiter.api.Test;
33 class ConsumerJobInfoTest {
36 void testConstructorAndGetters() {
38 String infoTypeId = "123";
39 String owner = "John";
40 ConsumerJobInfo.PmFilterData filterData = new ConsumerJobInfo.PmFilterData();
41 ConsumerJobInfo.KafkaDeliveryInfo deliveryInfo = new ConsumerJobInfo.KafkaDeliveryInfo("topic", "servers");
43 // Create a ConsumerJobInfo instance
44 ConsumerJobInfo jobInfo = new ConsumerJobInfo(infoTypeId, new ConsumerJobInfo.PmJobParameters("pmdata", filterData, deliveryInfo), owner);
46 // Test constructor and getters
47 assertEquals(infoTypeId, jobInfo.getInfoTypeId());
48 assertEquals(owner, jobInfo.getOwner());
49 assertNotNull(jobInfo.getJobDefinition());
51 // Test jobDefinition getters
52 assertEquals("pmdata", jobInfo.getJobDefinition().getFilterType());
53 assertEquals(filterData, jobInfo.getJobDefinition().getFilter());
54 assertEquals(deliveryInfo, jobInfo.getJobDefinition().getDeliveryInfo());
58 void testSerializationDeserialization() {
60 String infoTypeId = "123";
61 String owner = "John";
62 ConsumerJobInfo.PmFilterData filterData = new ConsumerJobInfo.PmFilterData();
63 ConsumerJobInfo.KafkaDeliveryInfo deliveryInfo = new ConsumerJobInfo.KafkaDeliveryInfo("topic", "servers");
65 // Create a ConsumerJobInfo instance
66 ConsumerJobInfo jobInfo = new ConsumerJobInfo(infoTypeId, new ConsumerJobInfo.PmJobParameters("pmdata", filterData, deliveryInfo), owner);
70 Gson gson = new Gson();
71 String json = gson.toJson(jobInfo);
73 // Deserialize from JSON
74 ConsumerJobInfo deserializedJobInfo = gson.fromJson(json, ConsumerJobInfo.class);
76 // Verify deserialized object
77 assertEquals(jobInfo.getInfoTypeId(), deserializedJobInfo.getInfoTypeId());
78 assertEquals(jobInfo.getOwner(), deserializedJobInfo.getOwner());
79 assertNotNull(deserializedJobInfo.getJobDefinition());
83 void testMeasTypeSpec() {
84 ConsumerJobInfo.PmFilterData.MeasTypeSpec measTypeSpec = new ConsumerJobInfo.PmFilterData.MeasTypeSpec();
85 measTypeSpec.setMeasuredObjClass("Class1");
87 Set<String> measTypes = new HashSet<>();
88 measTypes.add("Type1");
89 measTypes.add("Type2");
90 measTypeSpec.getMeasTypes().addAll(measTypes);
92 assertThat(measTypeSpec.getMeasuredObjClass()).isEqualTo("Class1");
93 assertThat(measTypeSpec.getMeasTypes()).containsExactlyInAnyOrder("Type1", "Type2");
97 void testKafkaDeliveryInfo() {
98 ConsumerJobInfo.KafkaDeliveryInfo kafkaDeliveryInfo = ConsumerJobInfo.KafkaDeliveryInfo.builder()
100 .bootStrapServers("localhost:9092")
103 assertThat(kafkaDeliveryInfo.getTopic()).isEqualTo("TestTopic");
104 assertThat(kafkaDeliveryInfo.getBootStrapServers()).isEqualTo("localhost:9092");
108 void testPmFilterData() {
109 ConsumerJobInfo.PmFilterData pmFilterData = new ConsumerJobInfo.PmFilterData();
112 Set<String> sourceNames = new HashSet<>(Arrays.asList("Source1", "Source2"));
113 pmFilterData.sourceNames.addAll(sourceNames);
114 assertThat(pmFilterData.sourceNames).containsExactlyInAnyOrder("Source1", "Source2");
116 // Test measObjInstIds
117 Set<String> measObjInstIds = new HashSet<>(Arrays.asList("Id1", "Id2"));
118 pmFilterData.measObjInstIds.addAll(measObjInstIds);
119 assertThat(pmFilterData.measObjInstIds).containsExactlyInAnyOrder("Id1", "Id2");
121 // Test measTypeSpecs
122 ConsumerJobInfo.PmFilterData.MeasTypeSpec measTypeSpec1 = new ConsumerJobInfo.PmFilterData.MeasTypeSpec();
123 measTypeSpec1.setMeasuredObjClass("Class1");
124 measTypeSpec1.getMeasTypes().addAll(Arrays.asList("Type1", "Type2"));
126 ConsumerJobInfo.PmFilterData.MeasTypeSpec measTypeSpec2 = new ConsumerJobInfo.PmFilterData.MeasTypeSpec();
127 measTypeSpec2.setMeasuredObjClass("Class2");
128 measTypeSpec2.getMeasTypes().addAll(Arrays.asList("Type3", "Type4"));
130 pmFilterData.measTypeSpecs.add(measTypeSpec1);
131 pmFilterData.measTypeSpecs.add(measTypeSpec2);
133 assertThat(pmFilterData.measTypeSpecs).hasSize(2);
134 assertThat(pmFilterData.measTypeSpecs).extracting("measuredObjClass").containsExactly("Class1", "Class2");
136 // Test measuredEntityDns
137 Set<String> measuredEntityDns = new HashSet<>(Arrays.asList("Entity1", "Entity2"));
138 pmFilterData.measuredEntityDns.addAll(measuredEntityDns);
139 assertThat(pmFilterData.measuredEntityDns).containsExactlyInAnyOrder("Entity1", "Entity2");