package localhost_8080.wsif.TimeServer;
/**
 * Testowanie portów dla aplikacji TimeServer za pomocą wygenerowanych klas pniaków.
 */

import localhost_8080.wsif.TimeServer.*;

public class StubTimeServerClient {

    public static final String DEFAULT_PORT = "TimeServiceSOAPPort";
    public static final String DEFAULT_TIME_ZONE = "Africa/Nairobi";

    public static void main(String[] args) {

        String portName = null;
        String timeZone = null;
        if (args.length == 0) {
            // Default port
            portName = DEFAULT_PORT;
            timeZone = DEFAULT_TIME_ZONE;
        } else if (args.length == 1) {
            portName = args[0];
            timeZone = DEFAULT_TIME_ZONE;
        } else if (args.length == 2) {
            portName = args[0];
            timeZone = args[1];
        } else {
            String className = StubTimeServerClient.class.getName();
            System.err.println("Skłądnia: java " + className + " [portName] [timeZone]");
            System.err.println(
                "Np: java "
                    + className
                    + " TimeServiceSOAPPort \t- Sprawdza zarówno metodę synchronizeTime() jak i getTimeAtCity() za pomocą portu SOAP");
            System.err.println("Domyślnym portem jest " + DEFAULT_PORT);
            System.err.println("Domyślną strefą czasową jest " + DEFAULT_TIME_ZONE);
            System.exit(0);
        }

        try {
            TimeServicePortTypeStub timeSvcPortTypeStub =
                new TimeServicePortTypeStub(null, null);
            timeSvcPortTypeStub.selectPort(portName);
            System.out.println(
                "Wynik działania portu "
                    + portName
                    + " wywołującego synchronizeTime()="
                    + timeSvcPortTypeStub.synchronizeTime());
            System.out.println(
                "Wynik działania portu "
                    + portName
                    + " wywołującego getTimeAtCity(\""
                    + timeZone
                    + "\")="
                    + timeSvcPortTypeStub.getTimeAtCity(timeZone));

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
