DS-Lab / src / test / java / dslab / TestObjects.java
TestObjects.java
Raw
package dslab;

import dslab.authentication.User;
import dslab.client.MessageClient;
import dslab.nameserver.NameserverRemote;
import dslab.protocol.Message;
import dslab.routing.Address;
import dslab.routing.Domain;
import dslab.util.ComponentId;
import dslab.util.Config;

import java.net.InetSocketAddress;
import java.util.List;
import java.util.Map;

import static java.util.Collections.emptyMap;

public class TestObjects {

    public static Domain earthPlanet() { return new Domain("earth.planet"); }
    public static Domain univerZe() { return new Domain("univer.ze"); }
    public static Domain bsCom() { return new Domain("bs.com"); }

    public static final Address trillianAtEarthPlanet = new Address("trillian", earthPlanet());
    public static final Address zaphodAtUniverZe = new Address("zaphod", univerZe());
    public static final Address unknownAtBsCom = new Address("unknown", bsCom());
    public static final Address arthurAtEarthPlanet = new Address("arthur", earthPlanet());
    public static final User arthur = new User(arthurAtEarthPlanet, "12345");
    public static final Address unknownAtEarthPlanet = new Address("unknown", earthPlanet());

    public static NameserverRemote planetRemote() {
        return new NameserverRemote(
                "planet",
                emptyMap(),
                Map.of(new Domain("earth"), new InetSocketAddress("localhost", 123)));
    }

    public static NameserverRemote rootRemote() {
        return new NameserverRemote(
                new Domain(""),
                Map.of(new Domain("planet"), planetRemote()));
    }

    public static Control trillianClient() {
        var in = new TestInputStream();
        var out = new TestOutputStream();
        return new Control(new MessageClient("client-trillian", new Config("client-trillian"), in, out),
                in, out);
    }

    public static Control zaphodClient() {
        var in = new TestInputStream();
        var out = new TestOutputStream();
        return new Control(new MessageClient("client-zaphod", new Config("client-zaphod"), in, out),
                in, out);
    }

    public static Message message() {
        var message = new Message();
        message.setSender(trillianAtEarthPlanet);
        message.setRecipients(List.of(arthurAtEarthPlanet, zaphodAtUniverZe));
        message.setSubject("What's up?");
        message.setData("I was just wondering if you want to have lunch on mars this afternoon. \n Greetings!");
        return message;
    }

    public static ComponentFactory transferServerComponentFactory() {
        return new ComponentFactory(new ComponentId("transfer-1"),new Config("transfer-1"));
    }
}