use of com.tvd12.ezyfoxserver.config.EzySimpleConfig in project ezyfox-server by youngmonkeys.
the class EzyServerBootstrapTest method test.
@SuppressWarnings("rawtypes")
@Test
public void test() throws Exception {
EzyServerBootstrap bt = new MyTestServerBootstrapBuilder().server(newServer()).build();
bt.destroy();
assert MethodInvoker.create().object(bt).method("getServer").invoke() != null;
assert MethodInvoker.create().object(bt).method("getServerSettings").invoke() != null;
assert MethodInvoker.create().object(bt).method("getHttpSetting").invoke() != null;
assert MethodInvoker.create().object(bt).method("getSocketSetting").invoke() != null;
assert MethodInvoker.create().object(bt).method("getWebSocketSetting").invoke() != null;
EzyServerBootstrap bootstrap = new EzyServerBootstrap() {
@Override
protected void startOtherBootstraps(Runnable callback) {
callback.run();
}
};
EzyServerContext serverContext = mock(EzyServerContext.class);
EzySimpleServer server = new EzySimpleServer();
EzySimpleConfig config = new EzySimpleConfig();
server.setConfig(config);
when(serverContext.getServer()).thenReturn(server);
EzySimpleSettings settings = new EzySimpleSettings();
server.setSettings(settings);
EzySessionManager sessionManager = new ExEzySimpleSessionManager.Builder().objectFactory(() -> spy(EzyAbstractSession.class)).build();
server.setSessionManager(sessionManager);
EzyBootstrap localBootstrap = EzyBootstrap.builder().context(serverContext).build();
bootstrap.setContext(serverContext);
bootstrap.setLocalBootstrap(localBootstrap);
bootstrap.start();
}
use of com.tvd12.ezyfoxserver.config.EzySimpleConfig in project ezyfox-server by youngmonkeys.
the class EzySimpleWsHandlerGroupTest method newHandlerGroup.
@SuppressWarnings("rawtypes")
private EzySimpleWsHandlerGroup newHandlerGroup(boolean streamEnable) throws IOException {
EzySessionTicketsQueue socketSessionTicketsQueue = new EzyBlockingSessionTicketsQueue();
EzySessionTicketsQueue webSocketSessionTicketsQueue = new EzyBlockingSessionTicketsQueue();
EzySessionManager sessionManager = EzyNioSessionManagerImpl.builder().maxRequestPerSecond(new EzySimpleSessionManagementSetting.EzySimpleMaxRequestPerSecond()).tokenGenerator(new EzySimpleSessionTokenGenerator()).build();
EzyStatistics statistics = new EzySimpleStatistics();
EzySimpleSettings settings = new EzySimpleSettings();
EzySimpleStreamingSetting streaming = settings.getStreaming();
streaming.setEnable(streamEnable);
EzySimpleServer server = new EzySimpleServer();
server.setSettings(settings);
server.setSessionManager(sessionManager);
EzyServerControllers controllers = mock(EzyServerControllers.class);
server.setControllers(controllers);
EzySimpleConfig config = new EzySimpleConfig();
server.setConfig(config);
EzySimpleServerContext serverContext = new EzySimpleServerContext();
serverContext.setServer(server);
serverContext.init();
EzyChannel channel = mock(EzyChannel.class);
when(channel.isConnected()).thenReturn(true);
when(channel.getConnection()).thenReturn(SocketChannel.open());
when(channel.getConnectionType()).thenReturn(EzyConnectionType.WEBSOCKET);
ExecutorService statsThreadPool = EzyExecutors.newFixedThreadPool(1, "stats");
EzySocketStreamQueue streamQueue = new EzyBlockingSocketStreamQueue();
EzySessionTicketsRequestQueues sessionTicketsRequestQueues = new EzySessionTicketsRequestQueues();
EzySimpleSession session = mock(EzySimpleSession.class);
when(session.getChannel()).thenReturn(channel);
EzyHandlerGroupBuilderFactory handlerGroupBuilderFactory = EzyHandlerGroupBuilderFactoryImpl.builder().statistics(statistics).serverContext(serverContext).statsThreadPool(statsThreadPool).streamQueue(streamQueue).codecFactory(new ExCodecFactory()).sessionTicketsRequestQueues(sessionTicketsRequestQueues).socketSessionTicketsQueue(socketSessionTicketsQueue).webSocketSessionTicketsQueue(webSocketSessionTicketsQueue).build();
return (EzySimpleWsHandlerGroup) handlerGroupBuilderFactory.newBuilder(channel, EzyConnectionType.WEBSOCKET).session(session).build();
}
use of com.tvd12.ezyfoxserver.config.EzySimpleConfig in project ezyfox-server by youngmonkeys.
the class EzyNioServerBootstrapTest method test.
@Test
public void test() throws Exception {
SSLContext sslContext = SSLContext.getDefault();
EzyResponseApi responseApi = mock(EzyResponseApi.class);
EzyStreamingApi streamingApi = mock(EzyStreamingApi.class);
EzySocketStreamQueue streamQueue = new EzyBlockingSocketStreamQueue();
EzyHandlerGroupManager handlerGroupManager = mock(EzyHandlerGroupManager.class);
EzySessionTicketsQueue socketSessionTicketsQueue = new EzyBlockingSessionTicketsQueue();
EzySessionTicketsQueue websocketSessionTicketsQueue = new EzyBlockingSessionTicketsQueue();
EzySessionTicketsRequestQueues sessionTicketsRequestQueues = new EzySessionTicketsRequestQueues();
EzySocketDisconnectionQueue socketDisconnectionQueue = new EzySocketDisconnectionQueue() {
final BlockingQueue<EzySocketDisconnection> queue = new LinkedBlockingQueue<>();
@Override
public EzySocketDisconnection take() throws InterruptedException {
return queue.take();
}
@Override
public int size() {
return 0;
}
@Override
public void remove(EzySocketDisconnection disconnection) {
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public void clear() {
}
@Override
public boolean add(EzySocketDisconnection disconnection) {
return false;
}
};
EzySimpleConfig config = new EzySimpleConfig();
EzySimpleSettings settings = new EzySimpleSettings();
EzySimpleStreamingSetting streaming = settings.getStreaming();
streaming.setEnable(true);
settings.getUdp().setActive(true);
EzySimpleServer server = new EzySimpleServer();
EzyServerControllers serverControllers = EzyServerControllersImpl.builder().build();
server.setControllers(serverControllers);
EzyEventControllersSetting eventControllersSetting = new EzySimpleEventControllersSetting();
EzyEventControllers eventControllers = EzyEventControllersImpl.create(eventControllersSetting);
server.setEventControllers(eventControllers);
server.setConfig(config);
server.setSettings(settings);
EzySimpleServerContext serverContext = new EzySimpleServerContext();
serverContext.setProperty(EzySocketUserRemovalQueue.class, new EzyBlockingSocketUserRemovalQueue());
serverContext.setServer(server);
serverContext.init();
ExBootstrap localBootstrap = new ExBootstrap(new EzyBootstrap.Builder().context(serverContext));
EzyNioServerBootstrap bootstrap = new EzyNioServerBootstrap();
bootstrap.setContext(serverContext);
bootstrap.setLocalBootstrap(localBootstrap);
bootstrap.setSslContext(sslContext);
bootstrap.setResponseApi(responseApi);
bootstrap.setStreamingApi(streamingApi);
bootstrap.setStreamQueue(streamQueue);
bootstrap.setHandlerGroupManager(handlerGroupManager);
bootstrap.setSocketSessionTicketsQueue(socketSessionTicketsQueue);
bootstrap.setWebsocketSessionTicketsQueue(websocketSessionTicketsQueue);
bootstrap.setSocketDisconnectionQueue(socketDisconnectionQueue);
bootstrap.setSocketSessionTicketsRequestQueues(sessionTicketsRequestQueues);
bootstrap.start();
bootstrap.destroy();
bootstrap.destroy();
}
use of com.tvd12.ezyfoxserver.config.EzySimpleConfig in project ezyfox-server by youngmonkeys.
the class EzyServerBootstrapTest method commonTest.
@Test
public void commonTest() {
// given
EzySimpleConfig config = new EzySimpleConfig();
config.setPrintBanner(false);
EzySimpleSettings settings = new EzySimpleSettings();
EzySimpleServer server = new EzySimpleServer();
server.setSettings(settings);
server.setConfig(config);
EzyServerContext serverContext = mock(EzyServerContext.class);
when(serverContext.getServer()).thenReturn(server);
EzyServerBootstrap sut = new EzyServerBootstrap() {
@Override
protected void startOtherBootstraps(Runnable callback) {
callback.run();
}
};
sut.setContext(serverContext);
// when
ReflectMethodUtil.invokeMethod("printBanner", sut);
EzyUdpSetting udpSetting = (EzyUdpSetting) ReflectMethodUtil.invokeMethod("getUdpSetting", sut);
EzyThreadPoolSizeSetting threadPoolSizeSetting = (EzyThreadPoolSizeSetting) ReflectMethodUtil.invokeMethod("getThreadPoolSizeSetting", sut);
// then
Asserts.assertEquals(server.getSettings().getUdp(), udpSetting);
Asserts.assertEquals(server.getSettings().getThreadPoolSize(), threadPoolSizeSetting);
}
use of com.tvd12.ezyfoxserver.config.EzySimpleConfig in project ezyfox-server by youngmonkeys.
the class EzyZonesStarterTest method normalCaseTest.
@Test
public void normalCaseTest() {
EzySimpleSettings settings = new EzySimpleSettings();
EzySimpleZonesSetting zonesSetting = settings.getZones();
EzySimpleZoneSetting zoneSetting = new EzySimpleZoneSetting();
zoneSetting.setName("test");
zonesSetting.setItem(zoneSetting);
EzySimpleAppsSetting appsSetting = new EzySimpleAppsSetting();
EzySimpleAppSetting appSetting = new EzySimpleAppSetting();
appSetting.setName("apps");
appSetting.setFolder("apps");
appSetting.setEntryLoader(ExEntryLoader.class.getName());
appsSetting.setItem(appSetting);
zoneSetting.setApplications(appsSetting);
EzySimplePluginsSetting pluginsSetting = new EzySimplePluginsSetting();
EzySimplePluginSetting pluginSetting = new EzySimplePluginSetting();
pluginSetting.setName("plugins");
pluginSetting.setFolder("plugins");
pluginSetting.setEntryLoader(ExPluginEntryLoader.class.getName());
pluginsSetting.setItem(pluginSetting);
zoneSetting.setPlugins(pluginsSetting);
EzySimpleServer server = new EzySimpleServer();
server.setSettings(settings);
server.setConfig(new EzySimpleConfig());
EzyServerContext serverContext = mock(EzyServerContext.class);
when(serverContext.getServer()).thenReturn(server);
EzySimpleZone zone = new EzySimpleZone();
zone.setSetting(zoneSetting);
EzyZoneContext zoneContext = mock(EzyZoneContext.class);
when(zoneContext.getZone()).thenReturn(zone);
when(serverContext.getZoneContext("test")).thenReturn(zoneContext);
EzySimpleApplication app = new EzySimpleApplication();
app.setSetting(appSetting);
EzyAppContext appContext = mock(EzyAppContext.class);
when(appContext.getApp()).thenReturn(app);
when(zoneContext.getAppContext("apps")).thenReturn(appContext);
EzySimplePlugin plugin = new EzySimplePlugin();
plugin.setSetting(pluginSetting);
EzyPluginContext pluginContext = mock(EzyPluginContext.class);
when(pluginContext.getPlugin()).thenReturn(plugin);
when(zoneContext.getPluginContext("plugins")).thenReturn(pluginContext);
Map<String, ClassLoader> appClassLoaders = new HashMap<>();
appClassLoaders.put("apps", new EzyAppClassLoader(new File("test-data"), getClass().getClassLoader()));
server.setAppClassLoaders(appClassLoaders);
EzyZonesStarter starter = EzyZonesStarter.builder().serverContext(serverContext).build();
starter.start();
}
Aggregations