Fixes: #3343 TextUtils.isEmpty creates problems when unit testing with Mockito (#3344)

* TextUtils: add mock textUtils for tests

* TextUtils: add more methods to mock for testing

* UploadControllerTest: fix the test resulting travis ci to fail
This commit is contained in:
Kshitij Bhardwaj 2020-01-28 10:32:14 +05:30 committed by Vivek Maskara
parent d235e5a85b
commit 803bed43d7
2 changed files with 83 additions and 0 deletions

View file

@ -0,0 +1,82 @@
package android.text;
import androidx.annotation.Nullable;
/**
* This Class Mocks TextUtils for the purpose of testing.
* NOTE: This class would not change the function of the TextUtils used in app
* it onlt mocks it for the unit tests
*
*/
public class TextUtils {
/**
* mocks TextUtils.isEmpty
*/
public static boolean isEmpty(@Nullable CharSequence str) {
return str == null || str.length() == 0;
}
/**
* mocks TextUtils.equals
*/
public static boolean equals(CharSequence a, CharSequence b) {
if (a == b) return true;
int length;
if (a != null && b != null && (length = a.length()) == b.length()) {
if (a instanceof String && b instanceof String) {
return a.equals(b);
} else {
for (int i = 0; i < length; i++) {
if (a.charAt(i) != b.charAt(i)) return false;
}
return true;
}
}
return false;
}
/**
* mocks TextUtils.isDigitsOnly
*/
public static boolean isDigitsOnly(CharSequence str) {
final int len = str.length();
for (int cp, i = 0; i < len; i += Character.charCount(cp)) {
cp = Character.codePointAt(str, i);
if (!Character.isDigit(cp)) {
return false;
}
}
return true;
}
/**
* mocks TextUtils.isNewline
*/
private static boolean isNewline(int codePoint) {
int type = Character.getType(codePoint);
return type == Character.PARAGRAPH_SEPARATOR || type == Character.LINE_SEPARATOR
|| codePoint == 10;
}
/**
* Returns whether the given CharSequence contains any printable characters.
*/
public static boolean isGraphic(CharSequence str) {
final int len = str.length();
for (int cp, i=0; i<len; i+=Character.charCount(cp)) {
cp = Character.codePointAt(str, i);
int gc = Character.getType(cp);
if (gc != Character.CONTROL
&& gc != Character.FORMAT
&& gc != Character.SURROGATE
&& gc != Character.UNASSIGNED
&& gc != Character.LINE_SEPARATOR
&& gc != Character.PARAGRAPH_SEPARATOR
&& gc != Character.SPACE_SEPARATOR) {
return true;
}
}
return false;
}
}

View file

@ -49,6 +49,7 @@ class UploadControllerTest {
@Test @Test
fun startUpload() { fun startUpload() {
val contribution = mock(Contribution::class.java) val contribution = mock(Contribution::class.java)
`when`(contribution.getCreator()).thenReturn("Creator")
uploadController!!.startUpload(contribution) uploadController!!.startUpload(contribution)
} }
} }