From b91c66b823dbab90721c57efc28340b81b723595 Mon Sep 17 00:00:00 2001 From: fengyuanwei <247564335@qq.com> Date: Tue, 22 Jun 2021 15:52:48 +0800 Subject: [PATCH 1/2] Fix typo in ConfigDataPropertiesTests See gh-27017 --- .../boot/context/config/ConfigDataPropertiesTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java index 9622287a001..9ecdf0dd011 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java @@ -162,7 +162,7 @@ class ConfigDataPropertiesTests { MapConfigurationPropertySource source = new MapConfigurationPropertySource(); source.put("spring.config.import", "one,two,three"); source.put("spring.config.activate.on-cloud-platform", "kubernetes"); - source.put("spring.config.activate.on-profiles", "a | b"); + source.put("spring.config.activate.on-profile", "a | b"); Binder binder = new Binder(source); ConfigDataProperties properties = ConfigDataProperties.get(binder); ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES, From 93d316ddd17976ec95d721c79597ab2182ea5ed3 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 23 Jun 2021 17:44:17 -0700 Subject: [PATCH 2/2] Add additional ConfigDataProperties tests Add more `isActive` tests to cover negative cases. See gh-27017 --- .../config/ConfigDataPropertiesTests.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java index 9ecdf0dd011..2c9cd2c6c69 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -160,18 +160,39 @@ class ConfigDataPropertiesTests { @Test void isActiveAgainstBoundData() { MapConfigurationPropertySource source = new MapConfigurationPropertySource(); - source.put("spring.config.import", "one,two,three"); source.put("spring.config.activate.on-cloud-platform", "kubernetes"); source.put("spring.config.activate.on-profile", "a | b"); Binder binder = new Binder(source); ConfigDataProperties properties = ConfigDataProperties.get(binder); ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES, createTestProfiles()); - assertThat(properties.getImports()).containsExactly(ConfigDataLocation.of("one"), ConfigDataLocation.of("two"), - ConfigDataLocation.of("three")); assertThat(properties.isActive(context)).isTrue(); } + @Test + void isActiveAgainstBoundDataWhenProfilesDontMatch() { + MapConfigurationPropertySource source = new MapConfigurationPropertySource(); + source.put("spring.config.activate.on-cloud-platform", "kubernetes"); + source.put("spring.config.activate.on-profile", "x | z"); + Binder binder = new Binder(source); + ConfigDataProperties properties = ConfigDataProperties.get(binder); + ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES, + createTestProfiles()); + assertThat(properties.isActive(context)).isFalse(); + } + + @Test + void isActiveAgainstBoundDataWhenCloudPlatformDoesntMatch() { + MapConfigurationPropertySource source = new MapConfigurationPropertySource(); + source.put("spring.config.activate.on-cloud-platform", "cloud-foundry"); + source.put("spring.config.activate.on-profile", "a | b"); + Binder binder = new Binder(source); + ConfigDataProperties properties = ConfigDataProperties.get(binder); + ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES, + createTestProfiles()); + assertThat(properties.isActive(context)).isFalse(); + } + @Test void isActiveWhenBindingToLegacyProperty() { MapConfigurationPropertySource source = new MapConfigurationPropertySource();