BundleMock -> kt

This commit is contained in:
Milos Kozak 2023-09-21 17:02:20 +02:00
parent 8b02daa7e7
commit d371894858
2 changed files with 116 additions and 173 deletions

View file

@ -1,173 +0,0 @@
package app.aaps.shared.tests;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyByte;
import static org.mockito.ArgumentMatchers.anyChar;
import static org.mockito.ArgumentMatchers.anyDouble;
import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyShort;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.when;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.SparseArray;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
@SuppressWarnings({"unused", "rawtypes", "SuspiciousMethodCalls", "unchecked", "deprecation"})
public final class BundleMock {
public static Bundle mock() {
return mock(new HashMap<>());
}
public static Bundle mock(final HashMap<String, Object> map) {
Answer unsupported = invocation -> {
throw new UnsupportedOperationException();
};
Answer put = invocation -> {
map.put((String) invocation.getArguments()[0], invocation.getArguments()[1]);
return null;
};
Answer<Object> get = invocation -> map.get(invocation.getArguments()[0]);
Answer<Object> getOrDefault = invocation -> {
Object key = invocation.getArguments()[0];
return map.containsKey(key) ? map.get(key) : invocation.getArguments()[1];
};
Bundle bundle = Mockito.mock(Bundle.class);
doAnswer(invocation -> map.size()).when(bundle).size();
doAnswer(invocation -> map.isEmpty()).when(bundle).isEmpty();
doAnswer(invocation -> {
map.clear();
return null;
}).when(bundle).clear();
doAnswer(invocation -> map.containsKey(invocation.getArguments()[0])).when(bundle).containsKey(anyString());
doAnswer(invocation -> map.get(invocation.getArguments()[0])).when(bundle).get(anyString());
doAnswer(invocation -> {
map.remove(invocation.getArguments()[0]);
return null;
}).when(bundle).remove(anyString());
doAnswer(invocation -> map.keySet()).when(bundle).keySet();
doAnswer(invocation -> BundleMock.class.getSimpleName() + "{map=" + map.toString() + "}").when(bundle).toString();
doAnswer(put).when(bundle).putBoolean(anyString(), anyBoolean());
when(bundle.getBoolean(anyString())).thenAnswer(get);
when(bundle.getBoolean(anyString(), anyBoolean())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putByte(anyString(), anyByte());
when(bundle.getByte(anyString())).thenAnswer(get);
when(bundle.getByte(anyString(), anyByte())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putChar(anyString(), anyChar());
when(bundle.getChar(anyString())).thenAnswer(get);
when(bundle.getChar(anyString(), anyChar())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putInt(anyString(), anyShort());
when(bundle.getShort(anyString())).thenAnswer(get);
when(bundle.getShort(anyString(), anyShort())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putLong(anyString(), anyLong());
when(bundle.getLong(anyString())).thenAnswer(get);
when(bundle.getLong(anyString(), anyLong())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putFloat(anyString(), anyFloat());
when(bundle.getFloat(anyString())).thenAnswer(get);
when(bundle.getFloat(anyString(), anyFloat())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putDouble(anyString(), anyDouble());
when(bundle.getDouble(anyString())).thenAnswer(get);
when(bundle.getDouble(anyString(), anyDouble())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putString(anyString(), anyString());
when(bundle.getString(anyString())).thenAnswer(get);
when(bundle.getString(anyString(), anyString())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putBooleanArray(anyString(), any(boolean[].class));
when(bundle.getBooleanArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putLongArray(anyString(), any(long[].class));
when(bundle.getLongArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putDoubleArray(anyString(), any(double[].class));
when(bundle.getDoubleArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putIntArray(anyString(), any(int[].class));
when(bundle.getIntArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putInt(anyString(), anyInt());
when(bundle.getInt(anyString())).thenAnswer(get);
when(bundle.getInt(anyString(), anyInt())).thenAnswer(getOrDefault);
doAnswer(unsupported).when(bundle).putAll(any(Bundle.class));
when(bundle.hasFileDescriptors()).thenAnswer(unsupported);
doAnswer(put).when(bundle).putShort(anyString(), anyShort());
when(bundle.getShort(anyString())).thenAnswer(get);
when(bundle.getShort(anyString(), anyShort())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putFloat(anyString(), anyFloat());
when(bundle.getFloat(anyString())).thenAnswer(get);
when(bundle.getFloat(anyString(), anyFloat())).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putCharSequence(anyString(), any(CharSequence.class));
when(bundle.getCharSequence(anyString())).thenAnswer(get);
when(bundle.getCharSequence(anyString(), any(CharSequence.class))).thenAnswer(getOrDefault);
doAnswer(put).when(bundle).putBundle(anyString(), any(Bundle.class));
when(bundle.getBundle(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putParcelable(anyString(), any(Parcelable.class));
when(bundle.getParcelable(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putParcelableArray(anyString(), any(Parcelable[].class));
when(bundle.getParcelableArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putParcelableArrayList(anyString(), any(ArrayList.class));
when(bundle.getParcelableArrayList(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putSparseParcelableArray(anyString(), any(SparseArray.class));
when(bundle.getSparseParcelableArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putSerializable(anyString(), any(Serializable.class));
when(bundle.getSerializable(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putIntegerArrayList(anyString(), any(ArrayList.class));
when(bundle.getIntegerArrayList(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putStringArrayList(anyString(), any(ArrayList.class));
when(bundle.getStringArrayList(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putCharSequenceArrayList(anyString(), any(ArrayList.class));
when(bundle.getCharSequenceArrayList(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putCharArray(anyString(), any(char[].class));
when(bundle.getCharArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putByteArray(anyString(), any(byte[].class));
when(bundle.getByteArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putShortArray(anyString(), any(short[].class));
when(bundle.getShortArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putFloatArray(anyString(), any(float[].class));
when(bundle.getFloatArray(anyString())).thenAnswer(get);
doAnswer(put).when(bundle).putCharSequenceArray(anyString(), any(CharSequence[].class));
when(bundle.getCharSequenceArray(anyString())).thenAnswer(get);
return bundle;
}
}

View file

@ -0,0 +1,116 @@
package app.aaps.shared.tests
import android.os.Bundle
import android.os.Parcelable
import org.mockito.ArgumentMatchers
import org.mockito.Mockito
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
import java.io.Serializable
@Suppress("unused", "deprecation")
object BundleMock {
@JvmOverloads fun mock(map: HashMap<String?, Any?> = HashMap()): Bundle {
val unsupported: Answer<*> = Answer { throw UnsupportedOperationException() }
val put: Answer<*> = Answer { invocation: InvocationOnMock ->
map[invocation.arguments[0] as String] = invocation.arguments[1]
null
}
val get = Answer { invocation: InvocationOnMock -> map[invocation.arguments[0]] }
val getOrDefault = Answer { invocation: InvocationOnMock ->
val key = invocation.arguments[0]
if (map.containsKey(key)) map[key] else invocation.arguments[1]
}
val bundle = Mockito.mock(Bundle::class.java)
Mockito.doAnswer { map.size }.`when`(bundle).size()
Mockito.doAnswer { map.isEmpty() }.`when`(bundle).isEmpty()
Mockito.doAnswer {
map.clear()
null
}.`when`(bundle).clear()
Mockito.doAnswer { invocation: InvocationOnMock -> map.containsKey(invocation.arguments[0]) }.`when`(bundle).containsKey(ArgumentMatchers.anyString())
Mockito.doAnswer { invocation: InvocationOnMock -> map[invocation.arguments[0]] }.`when`(bundle)[ArgumentMatchers.anyString()]
Mockito.doAnswer { invocation: InvocationOnMock ->
map.remove(invocation.arguments[0])
null
}.`when`(bundle).remove(ArgumentMatchers.anyString())
Mockito.doAnswer { map.keys }.`when`(bundle).keySet()
Mockito.doAnswer { BundleMock::class.java.getSimpleName() + "{map=" + map.toString() + "}" }.`when`(bundle).toString()
Mockito.doAnswer(put).`when`(bundle).putBoolean(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean())
Mockito.`when`(bundle.getBoolean(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getBoolean(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putByte(ArgumentMatchers.anyString(), ArgumentMatchers.anyByte())
Mockito.`when`(bundle.getByte(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getByte(ArgumentMatchers.anyString(), ArgumentMatchers.anyByte())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putChar(ArgumentMatchers.anyString(), ArgumentMatchers.anyChar())
Mockito.`when`(bundle.getChar(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getChar(ArgumentMatchers.anyString(), ArgumentMatchers.anyChar())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putInt(ArgumentMatchers.anyString(), ArgumentMatchers.anyShort().toInt())
Mockito.`when`(bundle.getShort(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getShort(ArgumentMatchers.anyString(), ArgumentMatchers.anyShort())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putLong(ArgumentMatchers.anyString(), ArgumentMatchers.anyLong())
Mockito.`when`(bundle.getLong(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getLong(ArgumentMatchers.anyString(), ArgumentMatchers.anyLong())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putFloat(ArgumentMatchers.anyString(), ArgumentMatchers.anyFloat())
Mockito.`when`(bundle.getFloat(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getFloat(ArgumentMatchers.anyString(), ArgumentMatchers.anyFloat())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putDouble(ArgumentMatchers.anyString(), ArgumentMatchers.anyDouble())
Mockito.`when`(bundle.getDouble(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getDouble(ArgumentMatchers.anyString(), ArgumentMatchers.anyDouble())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putString(ArgumentMatchers.anyString(), ArgumentMatchers.anyString())
Mockito.`when`(bundle.getString(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getString(ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putBooleanArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(BooleanArray::class.java))
Mockito.`when`(bundle.getBooleanArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putLongArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(LongArray::class.java))
Mockito.`when`(bundle.getLongArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putDoubleArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(DoubleArray::class.java))
Mockito.`when`(bundle.getDoubleArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putIntArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(IntArray::class.java))
Mockito.`when`(bundle.getIntArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putInt(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())
Mockito.`when`(bundle.getInt(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getInt(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())).thenAnswer(getOrDefault)
Mockito.doAnswer(unsupported).`when`(bundle).putAll(ArgumentMatchers.any(Bundle::class.java))
Mockito.`when`(bundle.hasFileDescriptors()).thenAnswer(unsupported)
Mockito.doAnswer(put).`when`(bundle).putShort(ArgumentMatchers.anyString(), ArgumentMatchers.anyShort())
Mockito.`when`(bundle.getShort(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getShort(ArgumentMatchers.anyString(), ArgumentMatchers.anyShort())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putFloat(ArgumentMatchers.anyString(), ArgumentMatchers.anyFloat())
Mockito.`when`(bundle.getFloat(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getFloat(ArgumentMatchers.anyString(), ArgumentMatchers.anyFloat())).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putCharSequence(ArgumentMatchers.anyString(), ArgumentMatchers.any(CharSequence::class.java))
Mockito.`when`(bundle.getCharSequence(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.`when`(bundle.getCharSequence(ArgumentMatchers.anyString(), ArgumentMatchers.any(CharSequence::class.java))).thenAnswer(getOrDefault)
Mockito.doAnswer(put).`when`(bundle).putBundle(ArgumentMatchers.anyString(), ArgumentMatchers.any(Bundle::class.java))
Mockito.`when`(bundle.getBundle(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putParcelable(ArgumentMatchers.anyString(), ArgumentMatchers.any(Parcelable::class.java))
Mockito.`when`<Any?>(bundle.getParcelable(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putParcelableArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(Array<Parcelable>::class.java))
Mockito.`when`(bundle.getParcelableArray(ArgumentMatchers.anyString())).thenAnswer(get)
// Mockito.doAnswer(put).`when`(bundle).putParcelableArrayList(ArgumentMatchers.anyString(), ArgumentMatchers.any(ArrayList::class.java))
Mockito.`when`(bundle.getParcelableArrayList<Parcelable>(ArgumentMatchers.anyString())).thenAnswer(get)
// Mockito.doAnswer(put).`when`(bundle).putSparseParcelableArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(SparseArray::class.java))
Mockito.`when`(bundle.getSparseParcelableArray<Parcelable>(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putSerializable(ArgumentMatchers.anyString(), ArgumentMatchers.any(Serializable::class.java))
Mockito.`when`(bundle.getSerializable(ArgumentMatchers.anyString())).thenAnswer(get)
// Mockito.doAnswer(put).`when`(bundle).putIntegerArrayList(ArgumentMatchers.anyString(), ArgumentMatchers.any(ArrayList::class.java))
Mockito.`when`(bundle.getIntegerArrayList(ArgumentMatchers.anyString())).thenAnswer(get)
// Mockito.doAnswer(put).`when`(bundle).putStringArrayList(ArgumentMatchers.anyString(), ArgumentMatchers.any(ArrayList::class.java))
Mockito.`when`(bundle.getStringArrayList(ArgumentMatchers.anyString())).thenAnswer(get)
// Mockito.doAnswer(put).`when`(bundle).putCharSequenceArrayList(ArgumentMatchers.anyString(), ArgumentMatchers.any(ArrayList::class.java))
Mockito.`when`(bundle.getCharSequenceArrayList(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putCharArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(CharArray::class.java))
Mockito.`when`(bundle.getCharArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putByteArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(ByteArray::class.java))
Mockito.`when`(bundle.getByteArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putShortArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(ShortArray::class.java))
Mockito.`when`(bundle.getShortArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putFloatArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(FloatArray::class.java))
Mockito.`when`(bundle.getFloatArray(ArgumentMatchers.anyString())).thenAnswer(get)
Mockito.doAnswer(put).`when`(bundle).putCharSequenceArray(ArgumentMatchers.anyString(), ArgumentMatchers.any(Array<CharSequence>::class.java))
Mockito.`when`(bundle.getCharSequenceArray(ArgumentMatchers.anyString())).thenAnswer(get)
return bundle
}
}