ParcelCheck

Introduction: Simple test to see if all models in project correctly implement Parcelable
More: Author   ReportBugs   
Tags:

Checks models within specified packages to make sure they are properly parcelable Special thanks to @alexkgwyn for creating most of this library.

Build Status

Dependency

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

and within your application build.gradle

dependencies {
    androidTestCompile 'com.github.Commit451:ParcelCheck:1.0.1'
}

Usage

Setup is simple, just create a class within your application's androidTest directory and make sure the newly created test extends ParcelCheckPackageTest. To test all models within a package:

public class AllModelsTest extends ParcelCheckPackageTest {

    @Override
    public String[] getModelPackageNames() {
        return new String[] {
                "com.commit451.parcelcheck.sample.models",
                "com.commit451.parcelcheck.sample.otherModels"
        };
    }
}

or alternatively, to test individual models:

public class DogAndPhoneParcelCheckTest extends ParcelCheckTest {

    @Override
    public Class[] getClassesToCheck() {
        return new Class[] {
                Dog.class,
                Phone.class
        };
    }
}

See the sample app for more

Notes

This library does not check the validity of your Parcelable methods. In other words, if you were to flip the value of a boolean when parceling, this library would not catch that. Since most people use generators to generate Parcelable methods, it is more dedicated to catching errors of the user forgetting to regenerate methods after adding data to a model, or other such cases.

License

Copyright 2016 Commit 451

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools