Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit

Permalink
Convert project to 'AssertJ Android'.
Browse files Browse the repository at this point in the history
  • Loading branch information
JakeWharton committed Jul 11, 2014
1 parent ff18c10 commit d73fc38
Show file tree
Hide file tree
Showing 280 changed files with 2,840 additions and 2,231 deletions.
14 changes: 12 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
language: java
language: android

android:
components:
- build-tools-20.0.0
- extra-android-m2repository
licenses:
- android-sdk-license-5be876d5

branches:
except:
Expand All @@ -8,4 +15,7 @@ notifications:
email: false

before_install:
- ./check-missing-assertions.sh
- ./check-missing-assertions.sh

script:
- ./gradlew clean check
56 changes: 26 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
Android FEST
============
AssertJ Android
===============

A set of FEST assertions geared toward testing Android.
A set of AssertJ assertions geared toward testing Android.

Writing tests is not the most glamorous part of developing an Android
application but it is an invaluable one. Using libraries like JUnit and FEST
application but it is an invaluable one. Using libraries like JUnit and AssertJ
provide a great starting point for writing tests.

This library is an extension of [FEST][1] which aims to make it even easier to test
This library is an extension of [AssertJ][1] which aims to make it even easier to test
Android.



Examples
--------

* FEST Android:
* AssertJ Android:

```java
assertThat(view).isGone();
Expand All @@ -27,25 +27,25 @@ Examples
assertEquals(View.GONE, view.getVisibility());
```

* Regular FEST:
* Regular AssertJ:

```java
assertThat(view.getVisibility()).isEqualTo(View.GONE);
```

When failing, the _FEST Android_ assertion produces an output which allows you
When failing, the _AssertJ Android_ assertion produces an output which allows you
to immediately recognize the problem:
`Expected visibility <gone> but was <invisible>`.

Compare that to the output of regular _FEST_ `Expected:<[8]> but was:<[4]>` and
Compare that to the output of regular _AssertJ_ `Expected:<[8]> but was:<[4]>` and
regular _JUnit_ `Expected: <8> but was: <4>` and you should immediately see the
advantage.


Because _FEST Android_ offers assertions directly on objects rather than
Because _AssertJ Android_ offers assertions directly on objects rather than
properties they can be chained together.

* FEST Android:
* AssertJ Android:

```java
assertThat(layout).isVisible()
Expand All @@ -63,7 +63,7 @@ properties they can be chained together.
assertEquals(SHOW_DIVIDERS_MIDDLE, layout.getShowDividers());
```

* Regular FEST:
* Regular AssertJ:

```java
assertThat(layout.getVisibility()).isEqualTo(View.VISIBLE);
Expand All @@ -79,7 +79,7 @@ support library is included too.
To get started writing tests add the following import:

```java
import static org.fest.assertions.api.ANDROID.assertThat;
import static org.assertj.android.api.Assertions.assertThat;
```


Expand All @@ -102,6 +102,10 @@ Use the following pattern to set up your assertions.

```java
public class CustomLayoutAssert extends AbstractLinearLayoutAssert<CustomLayoutAssert, CustomLayout> {
public static CustomLayoutAssert assertThat(CustomLayout actual) {
return new CustomLayout(actual);
}

public CustomLayoutAssert(CustomLayout actual) {
super(actual, CustomLayoutAssert.class);
}
Expand All @@ -116,15 +120,7 @@ public class CustomLayoutAssert extends AbstractLinearLayoutAssert<CustomLayoutA
}
```

To include this new assertion, create your own class which extends from `ANDROID`.

```java
public class MyAssertions extends ANDROID {
public static CustomLayoutAssert assertThat(CustomLayout actual) {
return new CustomLayoutAssert(actual);
}
}
```
Now static import `CustomLayoutAssert.assertThat` in your test classes.

For more information about writing custom assertions see the [official documentation][2].

Expand All @@ -137,20 +133,20 @@ Download [the latest JAR][3] or grab via Maven:

```xml
<dependency>
<groupId>com.squareup</groupId>
<artifactId>fest-android</artifactId>
<groupId>com.squareup.assertj</groupId>
<artifactId>assertj-android</artifactId>
<version>1.0.8</version>
</dependency>
```

or via Gradle:

```groovy
androidTestCompile 'com.squareup:fest-android:1.0.8'
androidTestCompile 'com.squareup.assertj:assertj-android:1.0.8'
```

If you are not using Maven or Gradle you will also need to include the latest
[FEST][4] jar in your build.
[AssertJ][4] jar in your build.

Compilation requires Android 4.1 or newer.

Expand All @@ -176,7 +172,7 @@ License



[1]: http://fest.easytesting.org
[2]: https://github.com/alexruiz/fest-assert-2.x/wiki/Creating-specific-assertions
[3]: http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.squareup&a=fest-android&v=LATEST
[4]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.easytesting%22%20a%3A%22fest-assert-core%22
[1]: http://joel-costigliola.github.io/assertj/
[2]: http://joel-costigliola.github.io/assertj/assertj-core-custom-assertions.html
[3]: http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.squareup.assertf&a=assertj-android&v=LATEST
[4]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.assertj%22%20a%3A%22assertj-core%22
44 changes: 44 additions & 0 deletions android-support-v4/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
apply plugin: 'com.android.library'
apply plugin: 'checkstyle'

dependencies {
compile project(':android')
compile 'com.android.support:support-v4:20.0.0'
}

android {
compileSdkVersion 19
buildToolsVersion '20.0.0'

defaultConfig {
minSdkVersion 7
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

lintOptions {
abortOnError false
disable 'InlinedApi', 'AllowBackup'
}
}

checkstyle {
configFile rootProject.file('checkstyle.xml')
showViolations true
}

android.libraryVariants.all { variant ->
def name = variant.buildType.name

def checkstyle = project.tasks.create "checkstyle${name.capitalize()}", Checkstyle
checkstyle.dependsOn variant.javaCompile
checkstyle.source variant.javaCompile.source
checkstyle.classpath = project.fileTree(variant.javaCompile.destinationDir)
checkstyle.exclude('**/BuildConfig.java')
project.tasks.getByName("check").dependsOn checkstyle
}

apply from: '../gradle/gradle-mvn-push.gradle'
3 changes: 3 additions & 0 deletions android-support-v4/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
POM_ARTIFACT_ID=assertj-android-support-v4
POM_NAME=AssertJ for Android Support v4 Library
POM_PACKAGING=aar
4 changes: 4 additions & 0 deletions android-support-v4/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.squareup.assertj.android.support.v4">
<application/>
</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
// Copyright 2014 Square, Inc.
//
// This class is generated. Do not modify directly!
package org.assertj.android.support.v4.api;

/** Assertions for testing Android classes. */
@SuppressWarnings("deprecation")
public final class Assertions {
public static org.assertj.android.support.v4.api.app.DialogFragmentAssert assertThat(
android.support.v4.app.DialogFragment actual) {
return new org.assertj.android.support.v4.api.app.DialogFragmentAssert(actual);
}

public static org.assertj.android.support.v4.api.app.FragmentAssert assertThat(
android.support.v4.app.Fragment actual) {
return new org.assertj.android.support.v4.api.app.FragmentAssert(actual);
}

public static org.assertj.android.support.v4.api.app.FragmentManagerAssert assertThat(
android.support.v4.app.FragmentManager actual) {
return new org.assertj.android.support.v4.api.app.FragmentManagerAssert(actual);
}

public static org.assertj.android.support.v4.api.app.FragmentTransactionAssert assertThat(
android.support.v4.app.FragmentTransaction actual) {
return new org.assertj.android.support.v4.api.app.FragmentTransactionAssert(actual);
}

public static org.assertj.android.support.v4.api.app.ListFragmentAssert assertThat(
android.support.v4.app.ListFragment actual) {
return new org.assertj.android.support.v4.api.app.ListFragmentAssert(actual);
}

public static org.assertj.android.support.v4.api.app.LoaderManagerAssert assertThat(
android.support.v4.app.LoaderManager actual) {
return new org.assertj.android.support.v4.api.app.LoaderManagerAssert(actual);
}

public static org.assertj.android.support.v4.api.content.CursorLoaderAssert assertThat(
android.support.v4.content.CursorLoader actual) {
return new org.assertj.android.support.v4.api.content.CursorLoaderAssert(actual);
}

public static org.assertj.android.support.v4.api.content.LoaderAssert assertThat(
android.support.v4.content.Loader actual) {
return new org.assertj.android.support.v4.api.content.LoaderAssert(actual);
}

public static <K, V> org.assertj.android.support.v4.api.util.LruCacheAssert<K, V> assertThat(
android.support.v4.util.LruCache<K, V> actual) {
return new org.assertj.android.support.v4.api.util.LruCacheAssert<>(actual);
}

public static org.assertj.android.support.v4.api.view.PagerAdapterAssert assertThat(
android.support.v4.view.PagerAdapter actual) {
return new org.assertj.android.support.v4.api.view.PagerAdapterAssert(actual);
}

public static org.assertj.android.support.v4.api.view.ViewPagerAssert assertThat(
android.support.v4.view.ViewPager actual) {
return new org.assertj.android.support.v4.api.view.ViewPagerAssert(actual);
}

public static org.assertj.android.support.v4.api.widget.CursorAdapterAssert assertThat(
android.support.v4.widget.CursorAdapter actual) {
return new org.assertj.android.support.v4.api.widget.CursorAdapterAssert(actual);
}

public static org.assertj.android.support.v4.api.widget.SimpleCursorAdapterAssert assertThat(
android.support.v4.widget.SimpleCursorAdapter actual) {
return new org.assertj.android.support.v4.api.widget.SimpleCursorAdapterAssert(actual);
}

private Assertions() {
throw new AssertionError("No instances.");
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// Copyright 2013 Square, Inc.
package org.fest.assertions.api.android.support.v4.app;
package org.assertj.android.support.v4.api.app;

import android.support.v4.app.Fragment;
import org.fest.assertions.api.AbstractAssert;
import org.assertj.core.api.AbstractAssert;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

public abstract class AbstractFragmentAssert<S extends AbstractFragmentAssert<S, A>, A extends Fragment> extends AbstractAssert<S, A> {
protected AbstractFragmentAssert(A actual, Class<S> selfType) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Copyright 2013 Square, Inc.
package org.fest.assertions.api.android.support.v4.app;
package org.assertj.android.support.v4.api.app;

import android.support.v4.app.DialogFragment;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

/** Assertions for {@link DialogFragment} instances. */
public class DialogFragmentAssert
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// Copyright 2013 Square, Inc.
package org.fest.assertions.api.android.support.v4.app;
package org.assertj.android.support.v4.api.app;

import android.support.v4.app.Fragment;

/**
* Assertions for {@link Fragment} instances.
* <p/>
* <p>
* This class is final. To extend use {@link AbstractFragmentAssert}.
*/
public final class FragmentAssert extends AbstractFragmentAssert<FragmentAssert, Fragment> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// Copyright 2013 Square, Inc.
package org.fest.assertions.api.android.support.v4.app;
package org.assertj.android.support.v4.api.app;

import android.support.v4.app.FragmentManager;
import org.fest.assertions.api.AbstractAssert;
import org.assertj.core.api.AbstractAssert;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

/** Assertions for {@link FragmentManager} instances. */
public class FragmentManagerAssert extends AbstractAssert<FragmentManagerAssert, FragmentManager> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// Copyright 2013 Square, Inc.
package org.fest.assertions.api.android.support.v4.app;
package org.assertj.android.support.v4.api.app;

import android.support.v4.app.FragmentTransaction;
import org.fest.assertions.api.AbstractAssert;
import org.assertj.core.api.AbstractAssert;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

/** Assertions for {@link FragmentTransaction} instances. */
public class FragmentTransactionAssert
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Copyright 2013 Square, Inc.
package org.fest.assertions.api.android.support.v4.app;
package org.assertj.android.support.v4.api.app;

import android.support.v4.app.ListFragment;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

/** Assertions for {@link ListFragment} instances. */
public class ListFragmentAssert extends AbstractFragmentAssert<ListFragmentAssert, ListFragment> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// Copyright 2013 Square, Inc.
package org.fest.assertions.api.android.support.v4.app;
package org.assertj.android.support.v4.api.app;

import android.support.v4.app.LoaderManager;
import org.fest.assertions.api.AbstractAssert;
import org.assertj.core.api.AbstractAssert;

import static org.fest.assertions.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

/** Assertions for {@link LoaderManager} instances. */
public class LoaderManagerAssert extends AbstractAssert<LoaderManagerAssert, LoaderManager> {
Expand Down
Loading

0 comments on commit d73fc38

Please sign in to comment.