package at.intelligentminds.client;
import static org.junit.Assert.*;
import java.util.TreeSet;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestMessageRetrieve {
private ConnectionProvider provider;
private String userEmail1;
private String userEmail2;
private String userEmail3;
private String authTokenUser1;
private String authTokenUser2;
private String pw1;
@Before
public void setUp() throws Exception {
userEmail1 = "usermustermann@bla.com";
userEmail2 = "user0816@bla.com";
userEmail3 = "user0817@bla.com";
pw1 = "Passw0rd";
provider = ConnectionProvider.getInstance();
provider.register(userEmail1, pw1, "male", "user", "mustermann");
provider.register(userEmail2, pw1, "male", "userZwei", "mustermann");
provider.register(userEmail3, pw1, "male", "userDrei", "mustermann");
authTokenUser1 = provider.performLogin(userEmail1, pw1);
authTokenUser2 = provider.performLogin(userEmail2, pw1);
provider.sendMessage(userEmail1, userEmail2, "test", authTokenUser1);
provider.sendMessage(userEmail2, userEmail1, "test 2", authTokenUser2);
provider.sendMessage(userEmail2, userEmail3, "test drei", authTokenUser2);
}
@After
public void tearDown() throws Exception {
provider.deleteAccount(userEmail1, pw1, authTokenUser1);
provider.deleteAccount(userEmail2, pw1, authTokenUser2);
provider.deleteAccount(userEmail3, pw1, provider.performLogin(userEmail3, pw1));
}
@Test
public void testGetCorrectMessages() {
JSONArray response = provider.getMessagesBySenderAndReceiver(userEmail1, userEmail2, authTokenUser1);
assertNotNull(response);
assertEquals(2, response.length());
}
@Test
public void testCorrectDate() {
JSONArray response = provider.getMessagesBySenderAndReceiver(userEmail2, userEmail3, authTokenUser1);
assertNotNull(response);
assertEquals(1, response.length());
JSONObject message = response.getJSONObject(0);
assertTrue(message.has("creatonDate"));
}
@Test
public void testNotLoggedIn() {
JSONArray response = provider.getMessagesBySenderAndReceiver(userEmail1, userEmail2, "");
assertNotNull(response);
assertEquals(0, response.length());
}
@Test
public void testReceiverNotExists() {
JSONArray response = provider.getMessagesBySenderAndReceiver(userEmail1, "ghost", authTokenUser1);
assertNotNull(response);
assertEquals(0, response.length());
}
@Test
public void testSenderNotExists() {
JSONArray response = provider.getMessagesBySenderAndReceiver("...", userEmail2, authTokenUser1);
assertNotNull(response);
assertEquals(0, response.length());
}
@Test
public void testGetCorrectMessagesSorted() {
TreeSet<Message> response = provider.getMessagesBySenderAndReceiverSorted(userEmail1, userEmail2, authTokenUser1);
assertNotNull(response);
assertEquals(2, response.size());
}
}