Skip to content
Snippets Groups Projects
InchatTest.java 1.64 KiB
Newer Older
 
package inf226.inchat;

import org.junit.jupiter.api.Test;

import inf226.storage.*;

import inf226.util.*;

import java.util.UUID;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;

public class InchatTest{
    @Test
    void chatSetup() throws Maybe.NothingException,SQLException {
        UUID testID = UUID.randomUUID();
        System.err.println("Running test:" + testID);
        final String path = "test" + testID +  ".db";
        final String dburl = "jdbc:sqlite:" + path;
        final Connection connection = DriverManager.getConnection(dburl);
        connection.createStatement().executeUpdate("PRAGMA foreign_keys = ON");
        UserStorage userStore
            = new UserStorage(connection);
        EventStorage eventStore
            = new EventStorage(connection);
        ChannelStorage channelStore
            = new ChannelStorage(connection,eventStore);
        AccountStorage accountStore
            = new AccountStorage(connection,userStore,channelStore);
        SessionStorage sessionStore
            = new SessionStorage(connection,accountStore);
        InChat inchat = new InChat(userStore,channelStore,accountStore,sessionStore);
        Stored<Session> aliceSession = inchat.register("Alice","badpassword").get();
        inchat.register("Bob","worse").get();
        Stored<Session> bobSession = inchat.login("Bob","worse").get();
        Stored<Channel> channel = inchat.createChannel(aliceSession.value.account,"Awesome").get();
        inchat.postMessage(aliceSession.value.account,channel, "Test message.").get();
        inchat.joinChannel(bobSession.value.account,channel.identity).get();
    }
}