package com.ctrip.framework.apollo.foundation.internals; import com.ctrip.framework.foundation.internals.ServiceBootstrap; import org.junit.Test; import java.util.ServiceConfigurationError; import static org.junit.Assert.assertTrue; /** * @author Jason Song(song_s@ctrip.com) */ public class ServiceBootstrapTest { @Test public void loadFirstSuccessfully() throws Exception { Interface1 service = ServiceBootstrap.loadFirst(Interface1.class); assertTrue(service instanceof Interface1Impl); } @Test(expected = IllegalStateException.class) public void loadFirstWithNoServiceFileDefined() throws Exception { ServiceBootstrap.loadFirst(Interface2.class); } @Test(expected = IllegalStateException.class) public void loadFirstWithServiceFileButNoServiceImpl() throws Exception { ServiceBootstrap.loadFirst(Interface3.class); } @Test(expected = ServiceConfigurationError.class) public void loadFirstWithWrongServiceImpl() throws Exception { ServiceBootstrap.loadFirst(Interface4.class); } @Test(expected = ServiceConfigurationError.class) public void loadFirstWithServiceImplNotExists() throws Exception { ServiceBootstrap.loadFirst(Interface5.class); } private interface Interface1 { } public static class Interface1Impl implements Interface1 { } private interface Interface2 { } private interface Interface3 { } private interface Interface4 { } private interface Interface5 { } }