package ru.testing.client;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.testing.client.common.properties.AppProperties;
import ru.testing.client.common.github.ReleaseChecker;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
/**
* Test git hub api data
*/
public class ReleaseCheckerTest {
private static final Logger LOGGER = LoggerFactory.getLogger(ReleaseCheckerTest.class);
private static AppProperties properties;
@BeforeClass
public static void testClassSetup() {
properties = AppProperties.getAppProperties();
}
@Test
public void testGitHubUrl() {
String url = properties.getTagsUrl();
assertThat("Git hub url length", url, not(isEmptyOrNullString()));
assertThat("Git hub url scheme", url, startsWith("https://"));
}
@Test(timeout = 30000)
public void testTagVersion() {
ReleaseChecker checker = ReleaseChecker.getInstance();
checker.start();
while (checker.isAlive()) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
LOGGER.error("Thread interrupted exception: {}", e.getMessage());
}
}
String currentVersion = properties.getVersion();
assertThat("Current version is old", checker.isCurrentVersionOld(currentVersion, checker.getLastVersion()), is(false));
}
}