2018-SWENG/2018-SWENG-Radius

View on GitHub
app/src/androidTest/java/ch/epfl/sweng/radius/utils/DatabaseObjectsTest.java

Summary

Maintainability
A
1 hr
Test Coverage
package ch.epfl.sweng.radius.utils;

import android.Manifest;
import android.support.test.rule.GrantPermissionRule;
import android.util.Log;

import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import ch.epfl.sweng.radius.database.ChatLogs;
import ch.epfl.sweng.radius.database.MLocation;
import ch.epfl.sweng.radius.database.Message;
import ch.epfl.sweng.radius.database.OthersInfo;
import ch.epfl.sweng.radius.database.User;
import ch.epfl.sweng.radius.database.UserInfo;
import ch.epfl.sweng.radius.database.UserUtils;
import ch.epfl.sweng.radius.home.PeopleTab;

import static junit.framework.TestCase.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;


public class DatabaseObjectsTest {
    @Rule
    public final GrantPermissionRule mPermissionRule = GrantPermissionRule.grant(
            Manifest.permission.ACCESS_FINE_LOCATION);

    @Test
    public void testMessages() {
        String senderId = "1234";
        String contentMessage = "hello sswde dde";
        Date sendingTime = new Date();

        Message message = new Message(senderId, contentMessage, sendingTime);
        assert(message.getID() == null);

        String senderIdCompare = message.getSenderId();
        String contentMessageCompare = message.getContentMessage();
        Date sendingTimeCompare = message.getSendingTime();

        assert(contentMessageCompare.equals(contentMessage));
        assert(senderIdCompare.equals(senderId));
        assert(sendingTimeCompare == sendingTime);
    }

    @Test
    public void testChatLogs() {
        ArrayList<String> usersIds = new ArrayList<String>();
        new ChatLogs(usersIds);

        ChatLogs chat = new ChatLogs();
        chat.setId("test");
        usersIds.add("1234");
        usersIds.add("4321");
        ChatLogs chatLogs = new ChatLogs(usersIds);
        ChatLogs chatLogs1 = new ChatLogs("12345");
        Message m = new Message(chatLogs.getMembersId().get(0), chatLogs.getMembersId().get(1), new Date());
        chatLogs.addMessage(m);
        chatLogs.addMembersId("56789");
        chatLogs.addMembersId("6789");
        chatLogs.addMembersId("5465");
        ChatLogs.getOtherID(chatLogs);
        // Test Ids generation
        Assert.assertNotNull(chatLogs.getID());
        // Test messages
        List allmessages = chatLogs.getMessages();
        List Nmessages = chatLogs.getLastNMessages(10);
        assert(allmessages.contains(m));
        assert(Nmessages.contains(m));

        assertFalse(m.equals(new User()));
        chatLogs.removeMessage(m);
        chatLogs.addMessage(m);
        chatLogs.removeMessage(0);
        chatLogs.setMessages(allmessages);
        String id = chatLogs.getChatLogsId();
        chatLogs.setChatLogsId(id);
        chatLogs.getNumberOfMessages();

    }

    @Test
    public void testInterface(){
        OthersInfo othersInfo = OthersInfo.getInstance();
        UserUtils userUtils = UserUtils.getInstance();
        UserInfo userInfo = UserInfo.getInstance();
        PeopleTab pep = new PeopleTab();
        userInfo.addLocationObserver(pep);
        userInfo.notifyLocationObservers("HELO");
        userInfo.removeLocationObserver(pep);
    }

    @Test
    public void testUser() {
        // Test no duplicates friends requests
        User user = new User("1234");
        User user2 = new User("123");
        user.addFriendRequest(user2);
        user2.addFriendRequest(user);
        user.addFriendRequest(user2);
        assert(user.getFriendsRequests().size() == 1);
        assert(user.getFriendsInvitations().size() == 1);

        String chat = user.getConvFromUser("Arthur");
        Log.e("Test", "Coucou");
        assert(chat.isEmpty());
        user.newChat("Arthur");
        List<String> blocked = user.getBlockedUsers();
        user.setBlockedUsers(blocked);
        Map<String, String> req = user.getFriendsRequests();
        Map<String, String> chats = user.getChatList();

        user.setID("Arthur");
        assertEquals("Arthur", user.getID());

        Map<String, String> userList = user.getChatList();
        user.setChatList(userList);

        userList = user.getReportList();
        user.removeFriend(user2);
    }

    @Test
    public void testMaxChars(){

        MLocation user = new MLocation("1234");

        // Test status max characters
        String status = user.getMessage();
        try {
            user.setMessage("123456789012345678901234567890123456789012345678902345678901234567890");
            assert(false);
        } catch (Exception e){}
        assert(user.getMessage() == status);

        //Test interests max characters
        String interests = user.getInterests();
        try {
            user.setInterests("12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678900");
            assert(false);
        } catch (Exception e){}
        assert(user.getInterests() == interests);
    }

    @Test
    public void testMLocation(){
        MLocation loc = new MLocation();
        MLocation mLocation = new MLocation("testLoc0");
        MLocation mLocation1 = new MLocation("locTest");
        MLocation mLocation2 = new MLocation("locTest2", 2.0, 3.0);

        assertTrue(mLocation1.getID().equals("locTest"));
        assert(3.0 == mLocation2.getLatitude());

        mLocation.setMessage("Msg");
        mLocation.setTitle("Title");
        mLocation.setID("locTest");

        assertEquals("Msg", mLocation.getMessage());
        assertEquals("Title", mLocation.getTitle());

        mLocation.setLatitude(1.0);
        mLocation.setLongitude(4.0);
        assert(mLocation2.getLatitude() == 1.0);
        assert(mLocation2.getLongitude() == 4.0);

        assertTrue(mLocation.getVisible());
        mLocation.setVisible(false);
        assertFalse(mLocation.getVisible());

    }

}