package com.permissionnanny.common.test; import android.os.Bundle; import android.support.annotation.Nullable; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; /** * */ public class IsBundleEqual extends BaseMatcher<Bundle> { private final Bundle mExpected; public IsBundleEqual(@Nullable Bundle expected) { mExpected = expected; } @Override public boolean matches(Object actual) { if (mExpected == null) { return actual == null; } // Type must match if (!(actual instanceof Bundle)) { return false; } Bundle actualBundle = (Bundle) actual; // Size must match if (mExpected.size() != actualBundle.size()) { return false; } // Content must match for (String key : mExpected.keySet()) { if (!TestUtil.deepEquals(mExpected.get(key), actualBundle.get(key))) { return false; } } return true; } @Override public void describeTo(Description description) { description.appendValue(mExpected); } }