Это мой класс в приложении загрузки Spring. Я пытаюсь написать тестовый пример JUNIT для метода onApplicationEvent
public class MyUtil implements ApplicationListener<ApplicationPreparedEvent>
{
@Override
public void onApplicationEvent(ApplicationPreparedEvent applicationPreparedEvent)
{
ConfigurableEnvironment configurableEnvironment = applicationPreparedEvent.getApplicationContext()
.getEnvironment();
String vaultSecretId = configurableEnvironment.getProperty("vault.secret.id");
String vaultRoleId = configurableEnvironment.getProperty("vault.role.id");
//Make REST call and fetch key value pair and set vaule in property.
for (Map.Entry<String, String> entry : allSecrets.entrySet())
{
System.setProperty(entry.getKey(), entry.getValue());
}
}
}
My JUNIT Test case
Когда я запускаю тестовый пример ниже. Я получаю null для configurableEnvironment в классе MyUtil
@Test
public void testSuccess()
{
MyUtil myUtil = new MyUtil();
MockEnvironment mockEnvironment = new MockEnvironment();
mockEnvironment.setProperty("vault.secret.id", "somesecretid");
mockEnvironment.setProperty("vault.role.id", "someroleid");
SpringApplication application = new SpringApplication();
String[] args = new String[1];
ConfigurableApplicationContext context = mock(ConfigurableApplicationContext.class);
context.setEnvironment(mockEnvironment);
ApplicationPreparedEvent event = new ApplicationPreparedEvent(application, args, context);
// event.getApplicationContext().setEnvironment(mockEnvironment); - Tried this but no luck
myUtil.onApplicationEvent(event);
}