Search in sources :

Example 6 with EzySimpleAppSetting

use of com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting in project ezyfox-server by youngmonkeys.

the class EzyAccessAppControllerTest method accessAppFailedDueToMaxUser.

@Test
public void accessAppFailedDueToMaxUser() {
    // given
    EzyServerContext serverContext = mock(EzyServerContext.class);
    EzyZoneContext zoneContext = mock(EzyZoneContext.class);
    when(serverContext.getZoneContext(1)).thenReturn(zoneContext);
    EzyAppContext appContext = mock(EzyAppContext.class);
    EzyApplication app = mock(EzyApplication.class);
    EzySimpleAppSetting appSetting = new EzySimpleAppSetting();
    appSetting.setName("test");
    when(app.getSetting()).thenReturn(appSetting);
    when(appContext.getApp()).thenReturn(app);
    EzySimpleAppUserDelegate userDelegate = new EzySimpleAppUserDelegate();
    userDelegate.setAppContext(appContext);
    EzyAppUserManager appUserManager = EzyAppUserManagerImpl.builder().maxUsers(1).appName("test").userDelegate(userDelegate).build();
    when(app.getUserManager()).thenReturn(appUserManager);
    when(zoneContext.getAppContext("test")).thenReturn(appContext);
    EzySimpleAccessAppRequest request1 = newRequest(1);
    EzySimpleAccessAppRequest request2 = newRequest(2);
    EzyAccessAppController underTest = new EzyAccessAppController();
    // when
    underTest.handle(serverContext, request1);
    Throwable e = Asserts.assertThrows(() -> underTest.handle(serverContext, request2));
    // then
    Asserts.assertEqualsType(e, EzyAccessAppException.class);
    Asserts.assertEqualsType(e.getCause(), EzyMaxUserException.class);
    verify(appContext, times(1)).handleEvent(eq(EzyEventType.USER_ACCESS_APP), any(EzySimpleUserAccessAppEvent.class));
    verify(appContext, times(1)).handleEvent(eq(EzyEventType.USER_ACCESSED_APP), any(EzySimpleUserAccessedAppEvent.class));
    verify(serverContext, times(2)).getZoneContext(1);
    verify(zoneContext, times(2)).getAppContext("test");
    verify(appContext, times(2)).getApp();
    verify(app, times(2)).getSetting();
    verify(app, times(2)).getUserManager();
    // 1 for success, 1 for failure
    verify(serverContext, times(2)).send(any(EzyResponse.class), any(EzySession.class), any(boolean.class));
}
Also used : EzySimpleAppSetting(com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting) EzyZoneContext(com.tvd12.ezyfoxserver.context.EzyZoneContext) EzyServerContext(com.tvd12.ezyfoxserver.context.EzyServerContext) EzySimpleAppUserDelegate(com.tvd12.ezyfoxserver.delegate.EzySimpleAppUserDelegate) EzyAppContext(com.tvd12.ezyfoxserver.context.EzyAppContext) EzySimpleUserAccessedAppEvent(com.tvd12.ezyfoxserver.event.EzySimpleUserAccessedAppEvent) EzyResponse(com.tvd12.ezyfoxserver.response.EzyResponse) EzySession(com.tvd12.ezyfoxserver.entity.EzySession) EzyApplication(com.tvd12.ezyfoxserver.EzyApplication) EzyAccessAppController(com.tvd12.ezyfoxserver.controller.EzyAccessAppController) EzyAppUserManager(com.tvd12.ezyfoxserver.wrapper.EzyAppUserManager) EzySimpleAccessAppRequest(com.tvd12.ezyfoxserver.request.EzySimpleAccessAppRequest) EzySimpleUserAccessAppEvent(com.tvd12.ezyfoxserver.event.EzySimpleUserAccessAppEvent) Test(org.testng.annotations.Test) BaseTest(com.tvd12.test.base.BaseTest)

Example 7 with EzySimpleAppSetting

use of com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting in project ezyfox-server by youngmonkeys.

the class EzyAccessAppControllerTest method accessAppFailedDueToMaxUserAfterAccess.

@Test
public void accessAppFailedDueToMaxUserAfterAccess() {
    // given
    EzyServerContext serverContext = mock(EzyServerContext.class);
    EzyZoneContext zoneContext = mock(EzyZoneContext.class);
    when(serverContext.getZoneContext(1)).thenReturn(zoneContext);
    EzyAppContext appContext = mock(EzyAppContext.class);
    EzyApplication app = mock(EzyApplication.class);
    EzySimpleAppSetting appSetting = new EzySimpleAppSetting();
    appSetting.setName("test");
    when(app.getSetting()).thenReturn(appSetting);
    when(appContext.getApp()).thenReturn(app);
    EzySimpleAppUserDelegate userDelegate = new EzySimpleAppUserDelegate();
    userDelegate.setAppContext(appContext);
    EzyAppUserManager appUserManager = mock(EzyAppUserManager.class);
    when(appUserManager.getMaxUsers()).thenReturn(1);
    when(app.getUserManager()).thenReturn(appUserManager);
    when(zoneContext.getAppContext("test")).thenReturn(appContext);
    EzySimpleAccessAppRequest request = newRequest(1);
    EzyUser user = request.getUser();
    when(appUserManager.getLock(user.getName())).thenReturn(new ReentrantLock());
    doThrow(new EzyMaxUserException(1, 1)).when(appUserManager).addUser(user);
    EzyAccessAppController underTest = new EzyAccessAppController();
    // when
    Throwable e = Asserts.assertThrows(() -> underTest.handle(serverContext, request));
    // then
    Asserts.assertEqualsType(e, EzyAccessAppException.class);
    Asserts.assertEqualsType(e.getCause(), EzyMaxUserException.class);
    verify(appUserManager, times(1)).containsUser(user);
    verify(appUserManager, times(1)).getUserCount();
    verify(appUserManager, times(1)).getMaxUsers();
    verify(appUserManager, times(1)).getAppName();
    verify(appUserManager, times(1)).getLock(user.getName());
    verify(appUserManager, times(1)).removeLock(user.getName());
    verify(appUserManager, times(1)).addUser(user);
    verify(appContext, times(1)).handleEvent(eq(EzyEventType.USER_ACCESS_APP), any(EzySimpleUserAccessAppEvent.class));
    verify(serverContext, times(1)).getZoneContext(1);
    verify(zoneContext, times(1)).getAppContext("test");
    verify(appContext, times(1)).getApp();
    verify(app, times(1)).getSetting();
    verify(app, times(1)).getUserManager();
    // 1 for success, 1 for failure
    verify(serverContext, times(1)).send(any(EzyResponse.class), any(EzySession.class), any(boolean.class));
}
Also used : EzySimpleAppSetting(com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting) ReentrantLock(java.util.concurrent.locks.ReentrantLock) EzyUser(com.tvd12.ezyfoxserver.entity.EzyUser) EzyZoneContext(com.tvd12.ezyfoxserver.context.EzyZoneContext) EzyServerContext(com.tvd12.ezyfoxserver.context.EzyServerContext) EzySimpleAppUserDelegate(com.tvd12.ezyfoxserver.delegate.EzySimpleAppUserDelegate) EzyAppContext(com.tvd12.ezyfoxserver.context.EzyAppContext) EzyResponse(com.tvd12.ezyfoxserver.response.EzyResponse) EzySession(com.tvd12.ezyfoxserver.entity.EzySession) EzyMaxUserException(com.tvd12.ezyfoxserver.exception.EzyMaxUserException) EzyApplication(com.tvd12.ezyfoxserver.EzyApplication) EzyAccessAppController(com.tvd12.ezyfoxserver.controller.EzyAccessAppController) EzyAppUserManager(com.tvd12.ezyfoxserver.wrapper.EzyAppUserManager) EzySimpleAccessAppRequest(com.tvd12.ezyfoxserver.request.EzySimpleAccessAppRequest) EzySimpleUserAccessAppEvent(com.tvd12.ezyfoxserver.event.EzySimpleUserAccessAppEvent) Test(org.testng.annotations.Test) BaseTest(com.tvd12.test.base.BaseTest)

Example 8 with EzySimpleAppSetting

use of com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting in project ezyfox-server by youngmonkeys.

the class EzyRequestAppControllerTest method newServerContext.

@Override
protected EzyServerContext newServerContext() {
    session = newSession();
    session.setToken("abc");
    user = new MyTestUser();
    user.setName("dungtv");
    user.addSession(session);
    EzyAppContext appContext = mock(EzyAppContext.class);
    EzySimpleApplication app = new EzySimpleApplication();
    app.setSetting(new EzySimpleAppSetting());
    app.setUserManager(EzyAppUserManagerImpl.builder().build());
    app.getUserManager().addUser(user);
    when(appContext.getApp()).thenReturn(app);
    EzyServerContext serverContext = mock(EzyServerContext.class);
    when(serverContext.getAppContext(1)).thenReturn(appContext);
    return serverContext;
}
Also used : EzySimpleAppSetting(com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting) EzySimpleApplication(com.tvd12.ezyfoxserver.EzySimpleApplication) MyTestUser(com.tvd12.ezyfoxserver.testing.MyTestUser) EzyServerContext(com.tvd12.ezyfoxserver.context.EzyServerContext) EzyAppContext(com.tvd12.ezyfoxserver.context.EzyAppContext)

Example 9 with EzySimpleAppSetting

use of com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting in project ezyfox-server by youngmonkeys.

the class EzySimpleAppSettingTest method getParentFolderWithEntries.

@Test
public void getParentFolderWithEntries() {
    // given
    EzySimpleAppSetting sut = new EzySimpleAppSetting();
    sut.setName("test");
    sut.setFolder("test");
    sut.setHomePath("test-data");
    sut.setConfigFile("config.properties");
    // when
    String configFile = sut.getConfigFile();
    // then
    Asserts.assertEquals("test-data/apps/entries/test/config.properties", configFile);
}
Also used : EzySimpleAppSetting(com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting) BaseTest(com.tvd12.test.base.BaseTest) Test(org.testng.annotations.Test)

Example 10 with EzySimpleAppSetting

use of com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting in project ezyfox-server by youngmonkeys.

the class EzySimpleAppSettingTest method getParentFolderNoEntries.

@Test
public void getParentFolderNoEntries() {
    // given
    EzySimpleAppSetting sut = new EzySimpleAppSetting();
    sut.setName("test");
    sut.setFolder("test");
    sut.setHomePath("test-data1");
    sut.setConfigFile("config.properties");
    // when
    String configFile = sut.getConfigFile();
    // then
    Asserts.assertEquals("test-data1/apps/test/config.properties", configFile);
}
Also used : EzySimpleAppSetting(com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting) BaseTest(com.tvd12.test.base.BaseTest) Test(org.testng.annotations.Test)

Aggregations

Test (org.testng.annotations.Test)34 EzySimpleAppSetting (com.tvd12.ezyfoxserver.setting.EzySimpleAppSetting)29 BaseTest (com.tvd12.test.base.BaseTest)25 EzySimpleApplication (com.tvd12.ezyfoxserver.EzySimpleApplication)17 EzyAppContext (com.tvd12.ezyfoxserver.context.EzyAppContext)12 EzySimpleAppContext (com.tvd12.ezyfoxserver.context.EzySimpleAppContext)11 EzyZoneContext (com.tvd12.ezyfoxserver.context.EzyZoneContext)11 EzyAppUserManager (com.tvd12.ezyfoxserver.wrapper.EzyAppUserManager)11 EzyApplication (com.tvd12.ezyfoxserver.EzyApplication)9 EzySimpleZoneContext (com.tvd12.ezyfoxserver.context.EzySimpleZoneContext)9 EzySimpleZone (com.tvd12.ezyfoxserver.EzySimpleZone)8 EzyServerContext (com.tvd12.ezyfoxserver.context.EzyServerContext)8 EzySimpleServer (com.tvd12.ezyfoxserver.EzySimpleServer)6 EzySimpleServerContext (com.tvd12.ezyfoxserver.context.EzySimpleServerContext)6 EzySimpleAppUserDelegate (com.tvd12.ezyfoxserver.delegate.EzySimpleAppUserDelegate)6 EzySimpleUser (com.tvd12.ezyfoxserver.entity.EzySimpleUser)6 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)6 EzyErrorScheduledExecutorService (com.tvd12.ezyfox.concurrent.EzyErrorScheduledExecutorService)5 EzySession (com.tvd12.ezyfoxserver.entity.EzySession)5 EzyResponse (com.tvd12.ezyfoxserver.response.EzyResponse)5