com.smash.revolance.ui.tests.smoke.ServerLifecycleITest.java Source code

Java tutorial

Introduction

Here is the source code for com.smash.revolance.ui.tests.smoke.ServerLifecycleITest.java

Source

package com.smash.revolance.ui.tests.smoke;

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * ui-monitoring-distrib
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Copyright (C) 2012 - 2014 RevoLance
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, either version 3 of the 
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public 
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/gpl-3.0.html>.
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */

import com.smash.revolance.ui.materials.CmdlineHelper;
import com.smash.revolance.ui.materials.TestConstants;
import org.apache.commons.io.FileUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.text.StringEndsWith.endsWith;
import static org.junit.Assert.assertThat;
import static org.junit.internal.matchers.IsCollectionContaining.hasItems;
import static org.junit.internal.matchers.StringContains.containsString;

public class ServerLifecycleITest extends TestConstants {
    private static CmdlineHelper statusAfterStop;
    private static CmdlineHelper start;
    private static CmdlineHelper stop;
    private static CmdlineHelper statusAfterStart;

    @BeforeClass
    public static void setupTests() throws Exception {
        start = new CmdlineHelper().dir(DISTRIB_DIR).cmd(START_SCRIPT);
        statusAfterStart = new CmdlineHelper().dir(DISTRIB_DIR).cmd(STATUS_SCRIPT);
        stop = new CmdlineHelper().dir(DISTRIB_DIR).cmd(STOP_SCRIPT);
        statusAfterStop = new CmdlineHelper().dir(DISTRIB_DIR).cmd(STATUS_SCRIPT);

        // startServerAndCheckStatus();
    }

    @AfterClass
    public static void teardownTests() throws Exception {
        // stopServerAndCheckStatus();
    }

    @Test
    public void checkDistribContent() {
        assertThat(listDistribFiles(),
                hasItems(endsWith("/start.sh"), endsWith("/stop.sh"), endsWith("/status.sh"),
                        endsWith("/config/settings.json"), containsString("/bin/ui-monitoring-cmdline"),
                        containsString("/web-apps/ui-monitoring-server"), containsString("/samples/")));
    }

    public static List<String> listDistribFiles() {
        List<String> files = new ArrayList<>();
        List<File> distribFiles = (List<File>) FileUtils.listFiles(DISTRIB_DIR, null, true);
        for (File file : distribFiles) {
            files.add(file.toString());
        }
        return files;
    }

    public static void stopServerAndCheckStatus() throws Exception {
        stop.sync().exec().outContains("Stopping server [Done]");
        assertThat(stop.exitValue(), is(0));

        statusAfterStop.sync().exec().awaitOut("server is stopped", 10);
        assertThat(statusAfterStop.exitValue(), is(0));
    }

    public static void startServerAndCheckStatus() throws Exception {
        start.exec().awaitOut("Starting server [Done]", 10);
        assertThat(start.hasExited(), is(false));

        statusAfterStart.sync().exec().awaitOut("server is started", 10);
        assertThat(statusAfterStart.exitValue(), is(0));
    }

}