package com.github.javiersantos.appupdater;
import android.support.test.InstrumentationRegistry;
import android.support.test.rule.UiThreadTestRule;
import android.support.test.runner.AndroidJUnit4;
import com.github.javiersantos.appupdater.enums.AppUpdaterError;
import com.github.javiersantos.appupdater.enums.UpdateFrom;
import com.github.javiersantos.appupdater.objects.Update;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@RunWith(AndroidJUnit4.class)
public class NoUpdateAvailableTest {
@Rule
public UiThreadTestRule uiThreadTestRule = new UiThreadTestRule();
@Test
public void updateAvailable_Basic_JSON() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/no-update-available-basic.json")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertFalse(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertNotNull(error);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
@Test
public void updateAvailable_VersionCode_JSON() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/no-update-available-versionCode.json")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertFalse(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertNotNull(error);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
@Test
public void updateAvailable_Basic_XML() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.XML)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/no-update-available-basic.xml")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertFalse(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertNotNull(error);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
@Test
public void updateAvailable_VersionCode_XML() throws Throwable {
final CountDownLatch signal = new CountDownLatch(1);
uiThreadTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
new AppUpdaterUtils(InstrumentationRegistry.getTargetContext())
.setUpdateFrom(UpdateFrom.XML)
.setUpdateJSON("https://raw.githubusercontent.com/javiersantos/AppUpdater/master/app/src/androidTest/java/com/github/javiersantos/appupdater/files/no-update-available-versionCode.xml")
.withListener(new AppUpdaterUtils.UpdateListener() {
@Override
public void onSuccess(Update update, Boolean isUpdateAvailable) {
assertFalse(isUpdateAvailable);
signal.countDown();
}
@Override
public void onFailed(AppUpdaterError error) {
assertNotNull(error);
signal.countDown();
}
})
.start();
}
});
signal.await(30, TimeUnit.SECONDS);
}
}