package com.xtremelabs.robolectric.shadows; import static com.xtremelabs.robolectric.Robolectric.shadowOf; import com.xtremelabs.robolectric.Robolectric; import com.xtremelabs.robolectric.internal.Implementation; import com.xtremelabs.robolectric.internal.Implements; import android.content.pm.Signature; import android.os.Parcel; import android.os.Parcelable.Creator; import java.util.Arrays; @Implements(Signature.class) public class ShadowSignature { private byte[] mSignature; public void __constructor__(byte[] signature) { mSignature = signature.clone(); } @Implementation public byte[] toByteArray() { byte[] bytes = new byte[mSignature.length]; System.arraycopy(mSignature, 0, bytes, 0, mSignature.length); return bytes; } @Override @Implementation public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof Signature)) { return false; } ShadowSignature otherShadow = shadowOf((Signature) obj); return Arrays.equals(mSignature, otherShadow.mSignature); } @Override @Implementation public int hashCode() { return Arrays.hashCode(mSignature); } @Implementation public void writeToParcel(Parcel dest, int flags) { dest.writeByteArray(mSignature); } public static final Creator CREATOR = new Creator() { @Override public Signature createFromParcel(Parcel source) { byte[] signature = source.createByteArray(); return new Signature(signature); } @Override public Signature[] newArray(int size) { return new Signature[size]; } }; public static void reset() { Robolectric.Reflection.setFinalStaticField(Signature.class, "CREATOR", CREATOR); } }