Skip to content

Commit 47956f7

Browse files
committed
testing param config for flavours #333
1 parent 102c755 commit 47956f7

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/FlavourFacade.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,16 @@ public static void checkFlavourExtraConfig( FlavourContext context, String actua
109109
checkFlavourExtraConfig( context, actualFlavour , flavourExtraConfig );
110110
}
111111

112+
public static void checkFlavourExtraConfigParam( String fieldName, ParamConfig paramConfig, String actualFlavour, Object value ) {
113+
log.debug( "fieldName : {}, value : {}", fieldName, value );
114+
if ( value != null && paramConfig.getAcceptOnly() != null && !paramConfig.getAcceptOnly().contains( value.toString() ) ) {
115+
log.debug( "accept only list : {} -> {}", fieldName, paramConfig.getAcceptOnly() );
116+
String message = String.format( "Value '%s' not valid for flavour '%s' and param '%s', refer to flavour documentation.", value, actualFlavour, fieldName );
117+
log.warn( message );
118+
throw new ConfigRuntimeException( message );
119+
}
120+
}
121+
112122
public static void checkFlavourExtraConfig( FlavourContext context, String actualFlavour, FlavourExtraConfig flavourExtraConfig ) {
113123
SafeFunction.applyIfNotNull( flavourExtraConfig.getParamConfig(), () -> {
114124
Field[] fields = FlavourContext.class.getDeclaredFields();
@@ -117,13 +127,7 @@ public static void checkFlavourExtraConfig( FlavourContext context, String actua
117127
ParamConfig paramConfig = flavourExtraConfig.getParamConfig().get( fieldName );
118128
if ( paramConfig != null ) {
119129
Object value = readField( context, field, fieldName );
120-
log.debug( "fieldName : {}, value : {}", fieldName, value );
121-
if ( value != null && !paramConfig.getAcceptOnly().contains( value.toString() ) ) {
122-
log.info( "accept only list : {} -> {}", fieldName, paramConfig.getAcceptOnly() );
123-
String message = String.format( "Value '%s' not valid for flavour '%s' and param '%s', refer to flavour documentation.", value, actualFlavour, fieldName );
124-
log.warn( message );
125-
throw new ConfigRuntimeException( message );
126-
}
130+
checkFlavourExtraConfigParam( fieldName, paramConfig, actualFlavour, value );
127131
}
128132
}
129133
} );

fj-doc-maven-plugin/src/test/java/test/org/fugerit/java/doc/project/facade/TestFlavourExtraConfigFacade.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.extern.slf4j.Slf4j;
44
import org.fugerit.java.core.cfg.ConfigRuntimeException;
5+
import org.fugerit.java.core.function.SafeFunction;
56
import org.fugerit.java.core.lang.helpers.ClassHelper;
67
import org.fugerit.java.doc.project.facade.FlavourContext;
78
import org.fugerit.java.doc.project.facade.FlavourFacade;
@@ -15,19 +16,22 @@
1516
import java.io.IOException;
1617
import java.io.InputStream;
1718
import java.lang.reflect.Field;
19+
import java.util.Arrays;
1820

1921
@Slf4j
2022
public class TestFlavourExtraConfigFacade {
2123

2224
private static final String FLAVOURTEST_1 = "flavourtest-1";
2325

26+
private static final String PARAM_ADD_LOMBOK = "addLombok";
27+
2428
@Test
2529
public void readConfig() throws IOException {
2630
// test quarkus-3 config
2731
String flavourConfigPath = String.format( "config/flavour-extra-config/%s-config.yml", FLAVOURTEST_1 );
2832
try (InputStream is = ClassHelper.loadFromDefaultClassLoader( flavourConfigPath ) ) {
2933
FlavourExtraConfig configQuarkus3 = FlavourExtraConfigFacade.readConfigBlankDefault( is );
30-
Assert.assertTrue( ((ParamConfig)configQuarkus3.getParamConfig().get( "addLombok" )).getAcceptOnly().contains( "true" ) );
34+
Assert.assertTrue( ((ParamConfig)configQuarkus3.getParamConfig().get( PARAM_ADD_LOMBOK )).getAcceptOnly().contains( "true" ) );
3135
}
3236
// test config does not exist
3337
try (InputStream is = ClassHelper.loadFromDefaultClassLoader( "config/flavour-extra-config/do-not-exist.yml" ) ) {
@@ -54,6 +58,17 @@ public void testCheckFlavourExtraConfig() throws NoSuchFieldException {
5458
context.setFlavourVersion( testFlavourVersion );
5559
Field fieldFlavourVersion = FlavourContext.class.getDeclaredField( propertyFlavourVersion );
5660
Assert.assertEquals( testFlavourVersion, FlavourFacade.readField( context, fieldFlavourVersion, propertyFlavourVersion ) );
61+
// check params
62+
Object value = null;
63+
FlavourFacade.checkFlavourExtraConfigParam( PARAM_ADD_LOMBOK, null, FLAVOURTEST_1, null );
64+
FlavourFacade.checkFlavourExtraConfigParam( PARAM_ADD_LOMBOK, new ParamConfig(), FLAVOURTEST_1, null );
65+
FlavourFacade.checkFlavourExtraConfigParam( PARAM_ADD_LOMBOK, new ParamConfig(), FLAVOURTEST_1, Boolean.TRUE.toString() );
66+
final ParamConfig paramConfig = SafeFunction.get( () -> {
67+
ParamConfig pc = new ParamConfig();
68+
pc.setAcceptOnly( Arrays.asList( Boolean.TRUE.toString() ) );
69+
return pc;
70+
} );
71+
Assert.assertThrows( ConfigRuntimeException.class, () -> FlavourFacade.checkFlavourExtraConfigParam( PARAM_ADD_LOMBOK, paramConfig, FLAVOURTEST_1, Boolean.FALSE.toString() ) );
5772
}
5873

5974
}

0 commit comments

Comments
 (0)