Search in sources :

Example 31 with Collection

use of com.tvd12.dahlia.core.entity.Collection in project ezyfox-server by youngmonkeys.

the class EzyAbstractStreamingApi method response.

@Override
public void response(EzyBytesPackage pack) throws Exception {
    EzyConstant connectionType = getConnectionType();
    Collection<EzySession> recipients = pack.getRecipients(connectionType);
    if (recipients.isEmpty()) {
        return;
    }
    byte[] bytes = pack.getBytes();
    for (EzySession session : recipients) {
        session.send(createPacket(bytes, pack));
    }
}
Also used : EzyConstant(com.tvd12.ezyfox.constant.EzyConstant) EzySession(com.tvd12.ezyfoxserver.entity.EzySession)

Example 32 with Collection

use of com.tvd12.dahlia.core.entity.Collection in project ezyfox-server by youngmonkeys.

the class EzyAppResponseImplTest method test.

@SuppressWarnings("rawtypes")
@Test
public void test() throws Exception {
    EzyAppContext context = mock(EzyAppContext.class);
    EzyApplication application = mock(EzyApplication.class);
    EzyAppUserManager userManager = EzyAppUserManagerImpl.builder().build();
    when(context.getApp()).thenReturn(application);
    when(application.getUserManager()).thenReturn(userManager);
    EzyAppResponse response = new EzyAppResponseImpl(context);
    Field recipients = EzyAbstractResponse.class.getDeclaredField("recipients");
    Field exclusiveRecipients = EzyAbstractResponse.class.getDeclaredField("exclusiveRecipients");
    recipients.setAccessible(true);
    exclusiveRecipients.setAccessible(true);
    assert ((Collection) recipients.get(response)).size() == 0;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 0;
    EzyUser user1 = newUser("user1");
    response.user(user1);
    assert ((Collection) recipients.get(response)).size() == 2;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 0;
    EzyUser user2 = newUser("user2");
    response.user(user2);
    response.user(user2, true);
    assert ((Collection) recipients.get(response)).size() == 4;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 2;
    EzyUser user3 = newUser("user3");
    EzyUser user4 = newUser("user4");
    response.users(user3, user4);
    response.users(new EzyUser[] { user3, null }, true);
    assert ((Collection) recipients.get(response)).size() == 8;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 4;
    EzyUser user5 = newUser("user5");
    EzyUser user6 = newUser("user6");
    response.users(Lists.newArrayList(user5, user6));
    response.users(Lists.newArrayList(user5, null), true);
    assert ((Collection) recipients.get(response)).size() == 12;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 6;
    EzyUser user7 = newUser("user7");
    EzyUser user8 = newUser("user8");
    userManager.addUser(user7);
    userManager.addUser(user8);
    response.username("user7");
    response.username("user7", true);
    assert ((Collection) recipients.get(response)).size() == 14;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 8;
    EzyUser user9 = newUser("user9");
    EzyUser user10 = newUser("user10");
    EzyUser user11 = newUser("user11");
    userManager.addUser(user9);
    userManager.addUser(user10);
    userManager.addUser(user11);
    response.usernames("user9", "user10");
    response.usernames(new String[] { "user11" }, true);
    assert ((Collection) recipients.get(response)).size() == 18;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 10;
    EzyUser user12 = newUser("user12");
    EzyUser user13 = newUser("user13");
    EzyUser user14 = newUser("user14");
    userManager.addUser(user12);
    userManager.addUser(user13);
    userManager.addUser(user14);
    response.usernames(Lists.newArrayList("user12", "user13"));
    response.usernames(Lists.newArrayList("user14"), true);
    assert ((Collection) recipients.get(response)).size() == 22;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 12;
    EzySession session1 = new ExSession();
    response.session(session1);
    assert ((Collection) recipients.get(response)).size() == 23;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 12;
    EzySession session2 = new ExSession();
    EzySession session3 = new ExSession();
    response.sessions(session2, session3);
    response.sessions(new EzySession[] { session3 }, true);
    assert ((Collection) recipients.get(response)).size() == 25;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 13;
    EzySession session4 = new ExSession();
    EzySession session5 = new ExSession();
    response.sessions(Lists.newArrayList(session4, session5));
    response.sessions(Lists.newArrayList(session4, session5), true);
    assert ((Collection) recipients.get(response)).size() == 27;
    assert ((Collection) exclusiveRecipients.get(response)).size() == 15;
}
Also used : EzyApplication(com.tvd12.ezyfoxserver.EzyApplication) Field(java.lang.reflect.Field) EzyUser(com.tvd12.ezyfoxserver.entity.EzyUser) EzyAppUserManager(com.tvd12.ezyfoxserver.wrapper.EzyAppUserManager) EzyAppContext(com.tvd12.ezyfoxserver.context.EzyAppContext) EzyAppResponseImpl(com.tvd12.ezyfoxserver.command.impl.EzyAppResponseImpl) EzyAppResponse(com.tvd12.ezyfoxserver.command.EzyAppResponse) EzySession(com.tvd12.ezyfoxserver.entity.EzySession) Test(org.testng.annotations.Test) BaseTest(com.tvd12.test.base.BaseTest)

Aggregations

Collection (com.tvd12.dahlia.core.entity.Collection)17 CollectionSetting (com.tvd12.dahlia.core.setting.CollectionSetting)16 EzyObject (com.tvd12.ezyfox.entity.EzyObject)13 CollectionStorage (com.tvd12.dahlia.core.storage.CollectionStorage)11 Record (com.tvd12.dahlia.core.entity.Record)10 FieldSetting (com.tvd12.dahlia.core.setting.FieldSetting)10 EzyArray (com.tvd12.ezyfox.entity.EzyArray)10 RecordConsumer (com.tvd12.dahlia.core.function.RecordConsumer)5 DatabaseSetting (com.tvd12.dahlia.core.setting.DatabaseSetting)5 CollectionExistedException (com.tvd12.dahlia.exception.CollectionExistedException)5 CollectionNotFoundException (com.tvd12.dahlia.exception.CollectionNotFoundException)5 DuplicatedIdException (com.tvd12.dahlia.exception.DuplicatedIdException)5 CommandCreateCollection (com.tvd12.dahlia.core.command.CommandCreateCollection)4 Database (com.tvd12.dahlia.core.entity.Database)4 DatabaseExistedException (com.tvd12.dahlia.exception.DatabaseExistedException)4 FindOptions (com.tvd12.dahlia.query.FindOptions)4 EzyConstant (com.tvd12.ezyfox.constant.EzyConstant)4 EzySession (com.tvd12.ezyfoxserver.entity.EzySession)4 ArrayList (java.util.ArrayList)4 ICollection (com.tvd12.dahlia.ICollection)3