diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f7819d3
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,49 @@
+language: android
+sudo: required
+jdk: oraclejdk8
+env:
+ global:
+ - ANDROID_TARGET=android-28
+ - ANDROID_ABI=armeabi-v7a
+ - CODECOV_TOKEN=02acc17d-8043-4416-96f9-d8fcb499a48c
+android:
+ components:
+ - tools
+ - platform-tools
+ - build-tools-28.0.0
+ - android-28
+ - extra-google-google_play_services
+ - extra-google-m2repository
+ - extra-android-m2repository
+ - $ANDROID_TARGET
+ - sys-img-${ANDROID_ABI}-${ANDROID_TARGET}
+
+licenses:
+ - 'android-sdk-license-.+'
+
+before_install:
+ - yes | sdkmanager "platforms;android-28"
+ - chmod +x ./gradlew
+ - mkdir "$ANDROID_HOME/licenses" || true
+ - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"
+ - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
+ - yes | sdkmanager --update
+ - yes | sdkmanager --licenses
+
+script:
+ - echo "Hello! This is Travis"
+ - ./gradlew build jacocoTestReport
+
+after_success:
+ - bash <(curl -s https://codecov.io/bash) -t ${CODECOV_TOKEN}
+
+
+before_cache:
+ - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
+ - rm -fr $HOME/.gradle/caches/*/plugin-resolution/
+
+cache:
+ directories:
+ - $HOME/.gradle/caches/
+ - $HOME/.gradle/wrapper/
+ - $HOME/.android/build-cache
\ No newline at end of file
diff --git a/README.md b/README.md
index 52259b2..ddb21bc 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,13 @@
+
Offix extends capabilities of Apollo GraphQL providing
fully featured Offline Workflow and Conflict Resolution for Android Platform
+
+ [](https://codecov.io/gh/s091424/offix-android)
+ [
+
diff --git a/offix/build.gradle b/offix/build.gradle
index 57776c0..d5b4439 100644
--- a/offix/build.gradle
+++ b/offix/build.gradle
@@ -4,6 +4,8 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'jacoco-android'
+
buildscript {
repositories {
jcenter()
@@ -11,6 +13,7 @@ buildscript {
dependencies {
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
+ classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4'
}
}
@@ -18,6 +21,14 @@ task cleanBuildPublish(type: GradleBuild) {
tasks = ['clean', 'build', 'bintrayUpload' , 'sourcesJar' ,'javadocJar' , 'javadoc']
}
+tasks.withType(Test) {
+ jacoco.includeNoLocationClasses = true
+}
+
+jacoco {
+ toolVersion = "0.8.4"
+}
+
android {
compileSdkVersion 28
@@ -35,7 +46,11 @@ android {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
+ debug {
+ testCoverageEnabled true
+ }
}
+
}
dependencies {
diff --git a/offix/src/test/java/org/aerogear/offix/ExampleUnitTest.java b/offix/src/test/java/org/aerogear/offix/ExampleUnitTest.java
index 215e23c..0ef40af 100644
--- a/offix/src/test/java/org/aerogear/offix/ExampleUnitTest.java
+++ b/offix/src/test/java/org/aerogear/offix/ExampleUnitTest.java
@@ -10,8 +10,12 @@
* @see Testing documentation
*/
public class ExampleUnitTest {
+
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
-}
\ No newline at end of file
+
+
+
+}
diff --git a/sample/src/androidTest/java/org/aerogear/graphqlandroid/ExampleInstrumentedTest.kt b/sample/src/androidTest/java/org/aerogear/graphqlandroid/ExampleInstrumentedTest.kt
index f48c14d..1e23995 100644
--- a/sample/src/androidTest/java/org/aerogear/graphqlandroid/ExampleInstrumentedTest.kt
+++ b/sample/src/androidTest/java/org/aerogear/graphqlandroid/ExampleInstrumentedTest.kt
@@ -15,10 +15,12 @@ import org.junit.Assert.*
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
+
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getTargetContext()
assertEquals("com.lavanya.graphqlandroid", appContext.packageName)
}
+
}
diff --git a/sample/src/test/java/org/aerogear/graphqlandroid/ExampleUnitTest.kt b/sample/src/test/java/org/aerogear/graphqlandroid/ExampleUnitTest.kt
index 12ff30b..704aedf 100644
--- a/sample/src/test/java/org/aerogear/graphqlandroid/ExampleUnitTest.kt
+++ b/sample/src/test/java/org/aerogear/graphqlandroid/ExampleUnitTest.kt
@@ -1,5 +1,8 @@
package org.aerogear.graphqlandroid
+import com.apollographql.apollo.api.OperationName
+import org.aerogear.graphqlandroid.model.NamePair
+import org.aerogear.graphqlandroid.model.UserOutput
import org.junit.Test
import org.junit.Assert.*
@@ -10,8 +13,52 @@ import org.junit.Assert.*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
+
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
+
+ @Test
+ fun baseURLEquals(){
+ assertEquals("http://10.0.2.2:4000/graphql", Utils.BASE_URL)
+ }
+
+ @Test
+ fun namePairCorrect(){
+ val pair = NamePair("bagger", "Tea")
+ assertEquals("bagger", pair.fName)
+ assertEquals("Tea", pair.lName)
+ }
+
+ @Test
+ fun userOutputCorrect(){
+ val output = UserOutput(
+ "Test",
+ "By the order of explosive potato",
+ 0,
+ "bagger",
+ "Tea",
+ "Teabagger12345",
+ "explosivepotatoexploded@gmail.com"
+ )
+ with(output) {
+ assertEquals("Test", title)
+ assertEquals("By the order of explosive potato", desc)
+ assertEquals(0, id)
+ assertEquals("bagger", firstName)
+ assertEquals("Tea", lastName)
+ assertEquals("Teabagger12345", userId)
+ assertEquals("explosivepotatoexploded@gmail.com", email)
+ }
+ }
+
+ @Test
+ fun operationNameTest(){
+ assertTrue(OperationName { "Teabagger" }.name().equals("Teabagger"))
+ assertFalse(OperationName { "Teabagger" }.name().equals("Potato"))
+
+ assertFalse(OperationName { "Teabagger" }.name().isBlank())
+ }
+
}