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 + + [![codecov](https://codecov.io/gh/s091424/offix-android/branch/master/graph/badge.svg)](https://codecov.io/gh/s091424/offix-android) + [![travis](https://api.travis-ci.com/s091424/offix-android.svg?branch=master) +

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()) + } + }