Search in sources :

Example 11 with Binder

use of cn.taketoday.context.properties.bind.Binder in project today-infrastructure by TAKETODAY.

the class ConfigDataLocationBindHandlerTests method bindToValueObjectFromCommaStringPropertyIgnoresEmptyElements.

@Test
void bindToValueObjectFromCommaStringPropertyIgnoresEmptyElements() {
    MapConfigurationPropertySource source = new MapConfigurationPropertySource();
    source.put("test.locations", ",a,b,,c,");
    Binder binder = new Binder(source);
    ValueObject bound = binder.bind("test", VALUE_OBJECT, this.handler).get();
    String expectedLocation = "\"test.locations\" from property source \"source\"";
    assertThat(bound.getLocation(0)).hasToString("a");
    assertThat(bound.getLocation(0).getOrigin()).hasToString(expectedLocation);
    assertThat(bound.getLocation(1)).hasToString("b");
    assertThat(bound.getLocation(1).getOrigin()).hasToString(expectedLocation);
    assertThat(bound.getLocation(2)).hasToString("c");
    assertThat(bound.getLocation(2).getOrigin()).hasToString(expectedLocation);
}
Also used : Binder(cn.taketoday.context.properties.bind.Binder) MapConfigurationPropertySource(cn.taketoday.context.properties.source.MapConfigurationPropertySource) Test(org.junit.jupiter.api.Test)

Example 12 with Binder

use of cn.taketoday.context.properties.bind.Binder in project today-infrastructure by TAKETODAY.

the class ProfilesTests method getAcceptedWithProfileGroups.

@Test
void getAcceptedWithProfileGroups() {
    MockEnvironment environment = new MockEnvironment();
    environment.setProperty("context.profiles.active", "a,b,c");
    environment.setProperty("context.profiles.group.a", "e,f");
    environment.setProperty("context.profiles.group.e", "x,y");
    environment.setDefaultProfiles("g", "h", "i");
    Binder binder = Binder.get(environment);
    Profiles profiles = new Profiles(environment, binder, null);
    assertThat(profiles.getAccepted()).containsExactly("a", "e", "x", "y", "f", "b", "c");
}
Also used : Binder(cn.taketoday.context.properties.bind.Binder) MockEnvironment(cn.taketoday.mock.env.MockEnvironment) Test(org.junit.jupiter.api.Test)

Example 13 with Binder

use of cn.taketoday.context.properties.bind.Binder in project today-infrastructure by TAKETODAY.

the class ProfilesTests method getDefaultWhenDefaultEnvironmentProfileAndBinderProperty.

@Test
void getDefaultWhenDefaultEnvironmentProfileAndBinderProperty() {
    MockEnvironment environment = new MockEnvironment();
    environment.setProperty("context.profiles.default", "default");
    List<ConfigurationPropertySource> sources = new ArrayList<>();
    ConfigurationPropertySources.get(environment).forEach(sources::add);
    sources.add(new MapConfigurationPropertySource(Collections.singletonMap("context.profiles.default", "a,b,c")));
    Binder binder = new Binder(sources);
    Profiles profiles = new Profiles(environment, binder, null);
    assertThat(profiles.getDefault()).containsExactly("default");
}
Also used : Binder(cn.taketoday.context.properties.bind.Binder) MockEnvironment(cn.taketoday.mock.env.MockEnvironment) ConfigurationPropertySource(cn.taketoday.context.properties.source.ConfigurationPropertySource) MapConfigurationPropertySource(cn.taketoday.context.properties.source.MapConfigurationPropertySource) ArrayList(java.util.ArrayList) MapConfigurationPropertySource(cn.taketoday.context.properties.source.MapConfigurationPropertySource) Test(org.junit.jupiter.api.Test)

Example 14 with Binder

use of cn.taketoday.context.properties.bind.Binder in project today-infrastructure by TAKETODAY.

the class ProfilesTests method isActiveWhenNoActiveAndDefaultDoesNotContainProfileReturnsFalse.

@Test
void isActiveWhenNoActiveAndDefaultDoesNotContainProfileReturnsFalse() {
    MockEnvironment environment = new MockEnvironment();
    environment.setDefaultProfiles("d", "e", "f");
    Binder binder = Binder.get(environment);
    Profiles profiles1 = new Profiles(environment, binder, null);
    Profiles profiles = profiles1;
    assertThat(profiles.isAccepted("x")).isFalse();
}
Also used : Binder(cn.taketoday.context.properties.bind.Binder) MockEnvironment(cn.taketoday.mock.env.MockEnvironment) Test(org.junit.jupiter.api.Test)

Example 15 with Binder

use of cn.taketoday.context.properties.bind.Binder in project today-infrastructure by TAKETODAY.

the class ProfilesTests method getActiveWhenNoEnvironmentProfilesAndNoPropertyReturnsEmptyArray.

@Test
void getActiveWhenNoEnvironmentProfilesAndNoPropertyReturnsEmptyArray() {
    Environment environment = new MockEnvironment();
    Binder binder = Binder.get(environment);
    Profiles profiles = new Profiles(environment, binder, null);
    assertThat(profiles.getActive()).isEmpty();
}
Also used : Binder(cn.taketoday.context.properties.bind.Binder) MockEnvironment(cn.taketoday.mock.env.MockEnvironment) MockEnvironment(cn.taketoday.mock.env.MockEnvironment) Environment(cn.taketoday.core.env.Environment) Test(org.junit.jupiter.api.Test)

Aggregations

Binder (cn.taketoday.context.properties.bind.Binder)169 Test (org.junit.jupiter.api.Test)148 MockEnvironment (cn.taketoday.mock.env.MockEnvironment)86 MapConfigurationPropertySource (cn.taketoday.context.properties.source.MapConfigurationPropertySource)40 MockConfigurationPropertySource (cn.taketoday.context.properties.source.MockConfigurationPropertySource)28 MockPropertySource (cn.taketoday.mock.env.MockPropertySource)16 ConfigurationPropertySource (cn.taketoday.context.properties.source.ConfigurationPropertySource)14 Environment (cn.taketoday.core.env.Environment)14 ArrayList (java.util.ArrayList)10 BeforeEach (org.junit.jupiter.api.BeforeEach)8 BindHandler (cn.taketoday.context.properties.bind.BindHandler)6 Bindable (cn.taketoday.context.properties.bind.Bindable)6 ConfigurationPropertyName (cn.taketoday.context.properties.source.ConfigurationPropertyName)6 StandardEnvironment (cn.taketoday.core.env.StandardEnvironment)6 BindContext (cn.taketoday.context.properties.bind.BindContext)4 List (java.util.List)4 ConfigurableApplicationContext (cn.taketoday.context.ConfigurableApplicationContext)2 BindException (cn.taketoday.context.properties.bind.BindException)2 PlaceholdersResolver (cn.taketoday.context.properties.bind.PlaceholdersResolver)2 ConfigurationProperty (cn.taketoday.context.properties.source.ConfigurationProperty)2