org.apache.dubbo.config.spring.ServiceBean#getSpringContext looks like a hack, we need to remove it.
this.springStatusChecker = new SpringStatusChecker();
        new ServiceBean<Object>().setApplicationContext(applicationContext);
    }
    @Test
    public void testWithoutApplicationContext() {
        Status status = springStatusChecker.check();
        assertThat(status.getLevel(), is(Status.Level.UNKNOWN));
    }
    @Test
    public void testWithLifeCycleRunning() {
        ApplicationLifeCycle applicationLifeCycle = mock(ApplicationLifeCycle.class);
        new ServiceBean<Object>().setApplicationContext(applicationLifeCycle);
        given(applicationLifeCycle.getConfigLocations()).willReturn(new String[]{"test1", "test2"});
        given(applicationLifeCycle.isRunning()).willReturn(true);
        Status status = springStatusChecker.check();
        assertThat(status.getLevel(), is(Status.Level.OK));
        assertThat(status.getMessage(), is("test1,test2"));
    }
    @Test
    public void testWithoutLifeCycleRunning() {
        ApplicationLifeCycle applicationLifeCycle = mock(ApplicationLifeCycle.class);
        new ServiceBean<Object>().setApplicationContext(applicationLifeCycle);
        given(applicationLifeCycle.isRunning()).willReturn(false);
        Status status = springStatusChecker.check();
        assertThat(status.getLevel(), is(Status.Level.ERROR));
    }
    interface ApplicationLifeCycle extends Lifecycle, ApplicationContext {
        String[] getConfigLocations();
    }
}