2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2023 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.oransc.participant.dme.validator;
23 import static org.junit.jupiter.api.Assertions.assertFalse;
24 import static org.junit.jupiter.api.Assertions.assertTrue;
25 import static org.mockito.Mockito.when;
27 import jakarta.validation.ConstraintValidatorContext;
28 import java.util.List;
29 import org.junit.jupiter.api.Test;
30 import org.junit.jupiter.api.extension.ExtendWith;
31 import org.mockito.Mock;
32 import org.oransc.participant.dme.models.ConfigurationEntity;
33 import org.springframework.test.context.junit.jupiter.SpringExtension;
35 @ExtendWith(SpringExtension.class)
36 class AtleastOneNonNullFieldValidatorTest {
39 AtleastOneNonNullField atleastOneNonNullField;
41 ConstraintValidatorContext constraintValidatorContext;
43 String[] fields = new String[] {"infoTypeEntities", "dataProducerEntities", "dataConsumerEntities"};
46 void testValidObject() {
47 when(atleastOneNonNullField.fieldNames()).thenReturn(fields);
48 AtleastOneNonNullFieldValidator atleastOneNonNullFieldValidator = new AtleastOneNonNullFieldValidator();
49 atleastOneNonNullFieldValidator.initialize(atleastOneNonNullField);
50 ConfigurationEntity configurationEntity = new ConfigurationEntity(List.of(), List.of(), List.of());
51 assertTrue(atleastOneNonNullFieldValidator.isValid(configurationEntity, constraintValidatorContext));
55 void testInvalidObject() {
56 when(atleastOneNonNullField.fieldNames()).thenReturn(fields);
57 AtleastOneNonNullFieldValidator atleastOneNonNullFieldValidator = new AtleastOneNonNullFieldValidator();
58 atleastOneNonNullFieldValidator.initialize(atleastOneNonNullField);
59 ConfigurationEntity configurationEntity = new ConfigurationEntity(null, null, null);
60 assertFalse(atleastOneNonNullFieldValidator.isValid(configurationEntity, constraintValidatorContext));
64 void testInvalidField() {
65 when(atleastOneNonNullField.fieldNames()).thenReturn(new String[] {"invalidField"});
66 AtleastOneNonNullFieldValidator atleastOneNonNullFieldValidator = new AtleastOneNonNullFieldValidator();
67 atleastOneNonNullFieldValidator.initialize(atleastOneNonNullField);
68 ConfigurationEntity configurationEntity = new ConfigurationEntity(List.of(), List.of(), List.of());
69 assertFalse(atleastOneNonNullFieldValidator.isValid(configurationEntity, constraintValidatorContext));
73 void testNullObject() {
74 when(atleastOneNonNullField.fieldNames()).thenReturn(new String[] {"invalidField"});
75 AtleastOneNonNullFieldValidator atleastOneNonNullFieldValidator = new AtleastOneNonNullFieldValidator();
76 atleastOneNonNullFieldValidator.initialize(atleastOneNonNullField);
77 assertFalse(atleastOneNonNullFieldValidator.isValid(null, constraintValidatorContext));