|
| 1 | +package ch.sbb.polarion.extension.generic.configuration; |
| 2 | + |
| 3 | +import ch.sbb.polarion.extension.generic.util.VersionUtils; |
| 4 | +import com.polarion.core.config.Configuration; |
| 5 | +import org.junit.jupiter.params.ParameterizedTest; |
| 6 | +import org.junit.jupiter.params.provider.Arguments; |
| 7 | +import org.junit.jupiter.params.provider.MethodSource; |
| 8 | +import org.mockito.MockedStatic; |
| 9 | +import org.mockito.Mockito; |
| 10 | + |
| 11 | +import java.util.stream.Stream; |
| 12 | + |
| 13 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
| 14 | +import static org.mockito.Mockito.mockStatic; |
| 15 | + |
| 16 | +public class GenericPolarionStatusProviderTest { |
| 17 | + public static Stream<Arguments> provideConfigurationStatus() { |
| 18 | + return Stream.of( |
| 19 | + Arguments.of("2410", "2410", configurationStatus(Status.OK, "2410")), |
| 20 | + Arguments.of("2410.1", "2410", configurationStatus(Status.OK, "2410.1")), |
| 21 | + Arguments.of("2310", "2410", configurationStatus(Status.WARNING, "2310 is not officially supported")), |
| 22 | + Arguments.of("2310.1", "2410", configurationStatus(Status.WARNING, "2310.1 is not officially supported")), |
| 23 | + Arguments.of("2410", "", configurationStatus(Status.ERROR, "Officially supported version not specified")) |
| 24 | + ); |
| 25 | + } |
| 26 | + |
| 27 | + private static ConfigurationStatus configurationStatus(Status status, String details) { |
| 28 | + return ConfigurationStatus.builder() |
| 29 | + .name(GenericPolarionStatusProvider.POLARION_ALM) |
| 30 | + .status(status) |
| 31 | + .details(details) |
| 32 | + .build(); |
| 33 | + } |
| 34 | + |
| 35 | + @ParameterizedTest |
| 36 | + @MethodSource("provideConfigurationStatus") |
| 37 | + void testConfigurationStatus(String polarionVersion, String currentCompatibleVersionPolarion, ConfigurationStatus expectedConfigurationStatus) { |
| 38 | + GenericPolarionStatusProvider polarionStatusProvider = new GenericPolarionStatusProvider(); |
| 39 | + |
| 40 | + try ( |
| 41 | + MockedStatic<Configuration> configurationMockedStatic = mockStatic(Configuration.class, Mockito.RETURNS_DEEP_STUBS); |
| 42 | + MockedStatic<VersionUtils> versionUtilsMockedStatic = mockStatic(VersionUtils.class) |
| 43 | + ) { |
| 44 | + configurationMockedStatic.when(() -> Configuration.getInstance().getProduct().versionName()).thenReturn(polarionVersion); |
| 45 | + versionUtilsMockedStatic.when(VersionUtils::getCurrentCompatiblePolarionVersion).thenReturn(currentCompatibleVersionPolarion); |
| 46 | + |
| 47 | + ConfigurationStatusProvider.Context context = ConfigurationStatusProvider.Context.builder().scope("").build(); |
| 48 | + ConfigurationStatus configurationStatus = polarionStatusProvider.getStatus(context); |
| 49 | + assertEquals(expectedConfigurationStatus, configurationStatus); |
| 50 | + } |
| 51 | + } |
| 52 | +} |
0 commit comments