package mobisocial.musubi.service;
import mobisocial.musubi.model.MDevice;
import mobisocial.musubi.model.MFeed;
import mobisocial.musubi.model.MIdentity;
import mobisocial.musubi.model.MObject;
import mobisocial.musubi.objects.StatusObj;
import mobisocial.musubi.util.Util;
import mobisocial.socialkit.Obj;
import mobisocial.test.NMusubisTestBase;
public class TwoMusubisTest extends NMusubisTestBase {
public TwoMusubisTest() {
super(2);
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testSendKnownPeopleKnownFeed() {
MFeed[] feeds = new MFeed[mContexts.length];
for(int i = 0; i < mContexts.length; ++i) {
for(int j = 0; j < mContexts.length; ++j) {
me[i][j].whitelisted_ = true;
me[i][j].claimed_ = true;
}
feeds[i] = fm[i].getOrCreateFixedFeed(me[i]);
}
assertEquals(0, om[0].getTotalCountOfObjects());
assertEquals(0, om[1].getTotalCountOfObjects());
Obj obj = StatusObj.from("Hiya! Click me to open this feed!");
insertObject(mContexts[0], im[0], dm[0], om[0], fm[0], am[0], feeds[0], me[0][0], obj);
for(int i = 0; i < 150; ++i) {
try {
if(om[1].getTotalCountOfObjects() == 1)
break;
Thread.sleep(100);
} catch (InterruptedException e) {}
}
assertEquals(1, om[0].getTotalCountOfObjects());
assertEquals(1, om[1].getTotalCountOfObjects());
MObject obj1 = om[0].getObjectForId(1);
MObject obj2 = om[1].getObjectForId(1);
assertNotNull(obj1);
assertNotNull(obj2);
assertEquals(obj1.type_, obj2.type_);
MDevice d1 = dm[0].getDeviceForId(obj1.deviceId_);
MDevice d2 = dm[1].getDeviceForId(obj2.deviceId_);
assertEquals(d1.deviceName_, d2.deviceName_);
MIdentity i1 = im[0].getIdentityForId(obj1.identityId_);
MIdentity i2 = im[1].getIdentityForId(obj2.identityId_);
assertNotSame(0, i1.principalShortHash_);
assertEquals(i1.principalShortHash_, i2.principalShortHash_);
assertEquals(i1.type_.ordinal(), i2.type_.ordinal());
assertNotNull(obj1.universalHash_);
assertNotNull(obj2.universalHash_);
String hash1 = Util.convertToHex(obj1.universalHash_);
String hash2 = Util.convertToHex(obj2.universalHash_);
assertEquals(hash1, hash2);
}
public void testSendKnownPeopleUnknownFeed() {
MFeed[] feeds = new MFeed[mContexts.length];
for(int i = 0; i < mContexts.length; ++i) {
for(int j = 0; j < mContexts.length; ++j) {
me[i][j].whitelisted_ = true;
me[i][j].claimed_ = true;
}
}
feeds[0] = fm[0].getOrCreateFixedFeed(me[0]);
assertEquals(0, om[0].getTotalCountOfObjects());
assertEquals(0, om[1].getTotalCountOfObjects());
Obj obj = StatusObj.from("Hiya! Click me to open this feed!");
insertObject(mContexts[0], im[0], dm[0], om[0], fm[0], am[0], feeds[0], me[0][0], obj);
for(int i = 0; i < 150; ++i) {
try {
if(om[1].getTotalCountOfObjects() == 1)
break;
Thread.sleep(100);
} catch (InterruptedException e) {}
}
assertEquals(1, om[0].getTotalCountOfObjects());
assertEquals(1, om[1].getTotalCountOfObjects());
}
public void testSendUnknownPeopleUnknownFeed() {
MFeed[] feeds = new MFeed[mContexts.length];
for(int i = 0; i < mContexts.length; ++i) {
for(int j = 0; j < mContexts.length; ++j) {
me[i][j].whitelisted_ = false;
me[i][j].claimed_ = false;
}
}
feeds[0] = fm[0].getOrCreateFixedFeed(me[0]);
assertEquals(0, om[0].getTotalCountOfObjects());
assertEquals(0, om[1].getTotalCountOfObjects());
Obj obj = StatusObj.from("Hiya! Click me to open this feed!");
insertObject(mContexts[0], im[0], dm[0], om[0], fm[0], am[0], feeds[0], me[0][0], obj);
for(int i = 0; i < 150; ++i) {
try {
if(om[1].getTotalCountOfObjects() == 1)
break;
Thread.sleep(100);
} catch (InterruptedException e) {}
}
assertEquals(1, om[0].getTotalCountOfObjects());
assertEquals(1, om[1].getTotalCountOfObjects());
//TODO: check that is isn't processed?
}
public void testSend10Feed() {
MFeed[] feeds = new MFeed[mContexts.length];
for(int i = 0; i < mContexts.length; ++i) {
for(int j = 0; j < mContexts.length; ++j) {
me[i][j].whitelisted_ = true;
me[i][j].claimed_ = true;
}
feeds[i] = fm[i].getOrCreateFixedFeed(me[i]);
}
assertEquals(0, om[0].getTotalCountOfObjects());
assertEquals(0, om[1].getTotalCountOfObjects());
for(int i = 0; i < 10; ++i) {
Obj obj = StatusObj.from("Hiya!" + i);
insertObject(mContexts[0], im[0], dm[0], om[0], fm[0], am[0], feeds[0], me[0][0], obj);
}
assertTrue(om[1].getTotalCountOfObjects() < 10);
for(int i = 0; i < 250; ++i) {
try {
if(om[1].getTotalCountOfObjects() == 10)
break;
Thread.sleep(100);
} catch (InterruptedException e) {}
}
assertEquals(10, om[0].getTotalCountOfObjects());
assertEquals(10, om[1].getTotalCountOfObjects());
}
}