Skip to content
This repository was archived by the owner on Sep 17, 2025. It is now read-only.

Commit 4709590

Browse files
committed
Added some tests
1 parent f22fdb1 commit 4709590

5 files changed

Lines changed: 87 additions & 45 deletions

File tree

library/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ android {
1313
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1414

1515
}
16+
testOptions {
17+
unitTests.returnDefaultValues = true
18+
}
1619
buildTypes {
1720
release {
1821
minifyEnabled false
@@ -25,4 +28,5 @@ dependencies {
2528
testCompile 'junit:junit:4.12'
2629
compile 'io.reactivex:rxjava:1.2.5'
2730
compile 'io.reactivex:rxandroid:0.24.0'
31+
testCompile 'com.android.support.test:runner:0.5'
2832
}

library/src/androidTest/java/com/ackee/versioupdatehandler/ExampleInstrumentedTest.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

library/src/test/java/com/ackee/versioupdatehandler/ExampleUnitTest.java

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package com.ackee.versioupdatehandler;
2+
3+
4+
import com.ackee.versioupdatehandler.model.BasicVersionsConfiguration;
5+
import com.ackee.versioupdatehandler.model.VersionFetchError;
6+
import com.ackee.versioupdatehandler.model.VersionStatus;
7+
import com.ackee.versioupdatehandler.model.VersionsConfiguration;
8+
9+
import org.junit.Test;
10+
11+
import rx.Single;
12+
import rx.functions.Func1;
13+
import rx.observers.TestSubscriber;
14+
15+
/**
16+
* Tests for {@link VersionStatusResolver}
17+
*
18+
* @author David Bilik [[email protected]]
19+
* @since 06/02/2017
20+
**/
21+
public class VersionStatusResolverTest {
22+
23+
public static final BasicVersionsConfiguration BASIC_VERSIONS_CONFIGURATION = new BasicVersionsConfiguration(10, 15);
24+
25+
@Test
26+
public void should_fire_error() {
27+
//any error should map to VersionFetchError
28+
VersionStatusResolver resolver = new VersionStatusResolver(new VersionFetcher() {
29+
@Override
30+
public Single<VersionsConfiguration> fetch() {
31+
return Single.error(new VersionFetchError());
32+
}
33+
});
34+
TestSubscriber<VersionStatus> testSubscriber = TestSubscriber.create();
35+
resolver.checkVersionStatus(0)
36+
.subscribe(testSubscriber);
37+
testSubscriber.assertError(VersionFetchError.class);
38+
testSubscriber.assertNoValues();
39+
testSubscriber.assertTerminalEvent();
40+
}
41+
42+
@Test
43+
public void should_be_up_to_date_greater_than_last() {
44+
checkSuccess(15, VersionStatus.UP_TO_DATE);
45+
}
46+
47+
@Test
48+
public void should_be_up_to_date_same_as_last() {
49+
checkSuccess(20, VersionStatus.UP_TO_DATE);
50+
}
51+
52+
@Test
53+
public void should_be_mandatory_update() {
54+
checkSuccess(8, VersionStatus.UPDATE_REQUIRED);
55+
}
56+
57+
@Test
58+
public void should_be_not_mandatory_update() {
59+
checkSuccess(13, VersionStatus.UPDATE_AVAILABLE);
60+
}
61+
62+
private void checkSuccess(int actualVersion, VersionStatus expectedResult) {
63+
VersionStatusResolver resolver = new VersionStatusResolver(new VersionFetcher() {
64+
@Override
65+
public Single<VersionsConfiguration> fetch() {
66+
return Single.just(BASIC_VERSIONS_CONFIGURATION).map(new Func1<BasicVersionsConfiguration, VersionsConfiguration>() {
67+
@Override
68+
public VersionsConfiguration call(BasicVersionsConfiguration basicVersionsConfiguration) {
69+
return basicVersionsConfiguration;
70+
}
71+
});
72+
}
73+
});
74+
TestSubscriber<VersionStatus> testSubscriber = TestSubscriber.create();
75+
resolver.checkVersionStatus(actualVersion)
76+
.subscribe(testSubscriber);
77+
testSubscriber.assertValue(expectedResult);
78+
testSubscriber.assertNoErrors();
79+
}
80+
}

rest-fetcher/src/main/java/com/ackee/versionupdatehandler/RestVersionFetcher.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class RestVersionFetcher implements VersionFetcher {
2929
private ApiDescription api = null;
3030

3131
interface ApiDescription {
32-
@GET("/app_version")
32+
@GET("app_version")
3333
public Single<BasicVersionsConfiguration> getVersions();
3434
}
3535

@@ -41,7 +41,8 @@ public RestVersionFetcher(String baseUrl) {
4141

4242
@Override
4343
public Single<VersionsConfiguration> fetch() {
44-
return getApi().getVersions()
44+
return getApi()
45+
.getVersions()
4546
// Single<BasicVersionsConfiguration> is not subtype of Single<VersionsConfiguration> :(
4647
.map(new Func1<BasicVersionsConfiguration, VersionsConfiguration>() {
4748
@Override

0 commit comments

Comments
 (0)