Refactor login module (#151)

This commit is contained in:
Rafał Borcz
2018-08-22 22:31:17 +02:00
committed by Mikołaj Pich
parent 64b0919b7f
commit a90d5cb9c3
208 changed files with 2101 additions and 11998 deletions

View File

@ -0,0 +1,13 @@
package io.github.wulkanowy
import io.github.wulkanowy.utils.schedulers.SchedulersManager
import io.reactivex.Scheduler
import io.reactivex.schedulers.Schedulers
class TestSchedulers : SchedulersManager {
override fun backgroundThread(): Scheduler = Schedulers.trampoline()
override fun mainThread(): Scheduler = Schedulers.trampoline()
}

View File

@ -1,36 +0,0 @@
package io.github.wulkanowy.data.db.dao.entities;
import org.junit.Assert;
import org.junit.Test;
public class GradeTest {
@Test
public void equalsTest() {
Assert.assertTrue(new Grade().setSubject("Religia").setValue("5")
.equals(new Grade().setSubject("Religia").setValue("5")));
Assert.assertFalse(new Grade().setSubject("Religia").setValue("4")
.equals(new Grade().setSubject("Religia").setValue("5")));
Assert.assertEquals(new Grade().setSubject("Religia").setValue("5").hashCode(),
new Grade().setSubject("Religia").setValue("5").hashCode());
Assert.assertFalse(new Grade().setSubject("Informatyka")
.equals(new FakeGrade().setSubject("Informatyka")));
Assert.assertFalse(new Grade().setSubject("Informatyka")
.equals(null));
}
private class FakeGrade {
private String subject;
private FakeGrade setSubject(String subject) {
this.subject = subject;
this.subject = this.subject + subject;
return this;
}
}
}

View File

@ -0,0 +1,64 @@
package io.github.wulkanowy.data.repositories.remote
import io.github.wulkanowy.api.StudentAndParent
import io.github.wulkanowy.api.Vulcan
import io.github.wulkanowy.api.generic.School
import io.github.wulkanowy.api.login.AccountPermissionException
import org.junit.Before
import org.junit.Test
import org.mockito.ArgumentMatchers.any
import org.mockito.Mock
import org.mockito.Mockito.*
import org.mockito.MockitoAnnotations
import io.github.wulkanowy.api.generic.Student as StudentApi
class StudentRemoteTest {
@Mock
private lateinit var mockApi: Vulcan
@Before
fun initApi() {
MockitoAnnotations.initMocks(this)
doNothing().`when`(mockApi).setCredentials(any(), any(), any(), any(), any(), any())
}
@Test
fun testRemoteAll() {
`when`(mockApi.symbols).thenReturn(mutableListOf("przeworsk", "jaroslaw", "zarzecze"))
`when`(mockApi.schools).thenReturn(mutableListOf(
School("ZSTIO", "123", false),
School("ZSZ", "998", true)))
val mockSnP = mock(StudentAndParent::class.java)
`when`(mockSnP.students).thenReturn(mutableListOf(
StudentApi().apply {
id = "20"
name = "Włodzimierz"
isCurrent = false
}))
`when`(mockApi.studentAndParent).thenReturn(mockSnP)
val students = StudentRemote(mockApi).getConnectedStudents("", "", "").blockingGet()
assert(students.size == 6)
assert(students[3].studentName == "Włodzimierz")
}
@Test
fun testOneEmptySymbol() {
doReturn(mutableListOf("przeworsk")).`when`(mockApi).symbols
doThrow(AccountPermissionException::class.java).`when`(mockApi).schools
val students = StudentRemote(mockApi).getConnectedStudents("", "", "").blockingGet()
assert(students.isEmpty())
}
@Test
fun testDefaultSymbol() {
doReturn(listOf("Default")).`when`(mockApi).symbols
val students = StudentRemote(mockApi).getConnectedStudents("", "", "").blockingGet()
assert(students.isEmpty())
}
}

View File

@ -0,0 +1,66 @@
package io.github.wulkanowy.ui.login
import org.junit.Assert.assertNotEquals
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito.*
import org.mockito.MockitoAnnotations
class LoginPresenterTest {
@Mock
lateinit var loginView: LoginView
@Mock
lateinit var errorHandler: LoginErrorHandler
private lateinit var presenter: LoginPresenter
@Before
fun initPresenter() {
MockitoAnnotations.initMocks(this)
clearInvocations(loginView)
presenter = LoginPresenter(errorHandler)
presenter.attachView(loginView)
}
@Test
fun initViewTest() {
verify(loginView).initAdapter()
verify(loginView).hideActionBar()
}
@Test
fun onPageSelectedTest() {
presenter.onPageSelected(1)
verify(loginView).loadOptionsView(1)
presenter.onPageSelected(0)
verify(loginView, never()).loadOptionsView(0)
}
@Test
fun onSwitchFragmentTest() {
presenter.onSwitchFragment(4)
verify(loginView).switchView(4)
}
@Test
fun onBackPressedTest() {
clearInvocations(loginView)
doReturn(1).`when`(loginView).currentViewPosition()
presenter.onBackPressed { }
verify(loginView).switchView(0)
verify(loginView).hideActionBar()
}
@Test
fun onBackPressedDefaultTest() {
var i = 0
doReturn(0).`when`(loginView).currentViewPosition()
presenter.onBackPressed { i++ }
assertNotEquals(0, i)
}
}

View File

@ -0,0 +1,152 @@
package io.github.wulkanowy.ui.login.form
import io.github.wulkanowy.TestSchedulers
import io.github.wulkanowy.data.db.entities.Student
import io.github.wulkanowy.data.repositories.StudentRepository
import io.github.wulkanowy.ui.login.LoginErrorHandler
import io.reactivex.Single
import org.junit.Before
import org.junit.Test
import org.mockito.ArgumentMatchers.anyString
import org.mockito.Mock
import org.mockito.Mockito.*
import org.mockito.MockitoAnnotations
class LoginFormPresenterTest {
@Mock
lateinit var loginFormView: LoginFormView
@Mock
lateinit var repository: StudentRepository
@Mock
lateinit var errorHandler: LoginErrorHandler
private lateinit var presenter: LoginFormPresenter
@Before
fun initPresenter() {
MockitoAnnotations.initMocks(this)
clearInvocations(repository, loginFormView)
presenter = LoginFormPresenter(TestSchedulers(), errorHandler, repository)
presenter.attachView(loginFormView)
}
@Test
fun initViewTest() {
verify(loginFormView).initInputs()
}
@Test
fun emptyEmailLoginTest() {
presenter.attemptLogin("", "test123", "test")
verify(loginFormView).setErrorEmailRequired()
verify(loginFormView, never()).setErrorPassRequired(false)
verify(loginFormView, never()).setErrorSymbolRequire()
verify(loginFormView, never()).setErrorEmailInvalid()
verify(loginFormView, never()).setErrorPassInvalid(false)
}
@Test
fun invalidEmailLoginTest() {
presenter.attemptLogin("test", "test123", "test")
verify(loginFormView, never()).setErrorEmailRequired()
verify(loginFormView, never()).setErrorPassRequired(false)
verify(loginFormView, never()).setErrorSymbolRequire()
verify(loginFormView).setErrorEmailInvalid()
verify(loginFormView, never()).setErrorPassInvalid(false)
}
@Test
fun emptyPassLoginTest() {
presenter.attemptLogin("@", "", "test")
verify(loginFormView, never()).setErrorEmailRequired()
verify(loginFormView).setErrorPassRequired(true)
verify(loginFormView, never()).setErrorSymbolRequire()
verify(loginFormView, never()).setErrorEmailInvalid()
verify(loginFormView, never()).setErrorPassInvalid(false)
}
@Test
fun invalidPassLoginTest() {
presenter.attemptLogin("@", "123", "test")
verify(loginFormView, never()).setErrorEmailRequired()
verify(loginFormView, never()).setErrorPassRequired(true)
verify(loginFormView, never()).setErrorSymbolRequire()
verify(loginFormView, never()).setErrorEmailInvalid()
verify(loginFormView).setErrorPassInvalid(true)
}
@Test
fun emptySymbolLoginTest() {
doReturn(Single.just(emptyList<Student>()))
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
presenter.attemptLogin("@", "12345", "")
presenter.attemptLogin("@", "12345", "")
verify(loginFormView).setErrorSymbolRequire()
}
@Test
fun loginTest() {
val studentTest = Student(email = "test@", password = "123")
doReturn(Single.just(listOf(studentTest)))
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
presenter.attemptLogin("@", "12345", "test")
verify(loginFormView).hideSoftKeyboard()
verify(loginFormView).showLoginProgress(true)
verify(repository).clearCache()
verify(loginFormView).showLoginProgress(false)
verify(loginFormView).switchNextView()
}
@Test
fun loginEmptyTest() {
doReturn(Single.just(emptyList<Student>()))
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
presenter.attemptLogin("@", "12345", "test")
verify(loginFormView).hideSoftKeyboard()
verify(loginFormView).showLoginProgress(true)
verify(repository).clearCache()
verify(loginFormView).showLoginProgress(false)
verify(loginFormView).showSymbolInput()
}
@Test
fun loginEmptyTwiceTest() {
doReturn(Single.just(emptyList<Student>()))
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
presenter.attemptLogin("@", "12345", "")
presenter.attemptLogin("@", "12345", "test")
verify(loginFormView, times(2)).hideSoftKeyboard()
verify(loginFormView, times(2)).showLoginProgress(true)
verify(repository, times(2)).clearCache()
verify(loginFormView, times(2)).showLoginProgress(false)
verify(loginFormView, times(2)).showSymbolInput()
verify(loginFormView).setErrorSymbolIncorrect()
}
@Test
fun loginErrorTest() {
val testException = RuntimeException()
doReturn(Single.error<List<Student>>(testException))
.`when`(repository).getConnectedStudents(anyString(), anyString(), anyString())
presenter.attemptLogin("@", "12345", "test")
verify(loginFormView).hideSoftKeyboard()
verify(loginFormView).showLoginProgress(true)
verify(repository).clearCache()
verify(loginFormView).showLoginProgress(false)
verify(errorHandler).proceed(testException)
}
}

View File

@ -0,0 +1,78 @@
package io.github.wulkanowy.ui.login.options
import io.github.wulkanowy.TestSchedulers
import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.db.entities.Student
import io.github.wulkanowy.data.repositories.StudentRepository
import io.reactivex.Single
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito.*
import org.mockito.MockitoAnnotations
class LoginOptionsPresenterTest {
@Mock
lateinit var errorHandler: ErrorHandler
@Mock
lateinit var loginOptionsView: LoginOptionsView
@Mock
lateinit var repository: StudentRepository
private lateinit var presenter: LoginOptionsPresenter
private val testStudent by lazy { Student(email = "test", password = "test123") }
private val testException by lazy { RuntimeException("Problem") }
@Before
fun initPresenter() {
MockitoAnnotations.initMocks(this)
clearInvocations(repository, loginOptionsView)
presenter = LoginOptionsPresenter(errorHandler, repository, TestSchedulers())
presenter.attachView(loginOptionsView)
}
@Test
fun initViewTest() {
verify(loginOptionsView).initRecycler()
}
@Test
fun refreshDataTest() {
doReturn(Single.just(listOf(testStudent))).`when`(repository).cachedStudents
presenter.refreshData()
verify(loginOptionsView).showActionBar(true)
verify(loginOptionsView).updateData(listOf(LoginOptionsItem(testStudent)))
verify(repository).clearCache()
}
@Test
fun refreshDataErrorTest() {
doReturn(Single.error<List<Student>>(testException)).`when`(repository).cachedStudents
presenter.refreshData()
verify(loginOptionsView).showActionBar(true)
verify(errorHandler).proceed(testException)
verify(repository).clearCache()
}
@Test
fun onSelectedStudentTest() {
presenter.onSelectStudent(testStudent)
verify(repository).save(testStudent)
verify(loginOptionsView).showLoginProgress(true)
verify(loginOptionsView).openMainView()
}
@Test
fun onSelectedStudentErrorTest() {
doThrow(testException).`when`(repository).save(testStudent)
presenter.onSelectStudent(testStudent)
verify(loginOptionsView).showLoginProgress(true)
verify(errorHandler).proceed(testException)
}
}

View File

@ -0,0 +1,44 @@
package io.github.wulkanowy.ui.splash
import io.github.wulkanowy.data.ErrorHandler
import io.github.wulkanowy.data.repositories.StudentRepository
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
class SplashPresenterTest {
@Mock
lateinit var splashView: SplashView
@Mock
lateinit var studentRepository: StudentRepository
@Mock
lateinit var errorHandler: ErrorHandler
private lateinit var presenter: SplashPresenter
@Before
fun initPresenter() {
MockitoAnnotations.initMocks(this)
presenter = SplashPresenter(studentRepository, errorHandler)
}
@Test
fun testOpenLoginView() {
doReturn(false).`when`(studentRepository).isStudentLoggedIn
presenter.attachView(splashView)
verify(splashView).openLoginActivity()
}
@Test
fun testMainMainView() {
doReturn(true).`when`(studentRepository).isStudentLoggedIn
presenter.attachView(splashView)
verify(splashView).openMainActivity()
}
}

View File

@ -1,80 +0,0 @@
package io.github.wulkanowy.utils;
import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.generic.Day;
import io.github.wulkanowy.api.generic.Lesson;
import io.github.wulkanowy.api.grades.Grade;
import io.github.wulkanowy.api.grades.Subject;
import io.github.wulkanowy.data.db.dao.entities.TimetableLesson;
public class DataObjectConverterTest {
@Test
public void subjectConversionTest() {
List<Subject> subjectList = new ArrayList<>();
subjectList.add(new Subject().setName("Matematyka"));
List<io.github.wulkanowy.data.db.dao.entities.Subject> subjectEntitiesList =
DataObjectConverter.subjectsToSubjectEntities(subjectList, 1L);
Assert.assertEquals("Matematyka", subjectEntitiesList.get(0).getName());
}
@Test
public void subjectConversionEmptyTest() {
Assert.assertEquals(new ArrayList<>(),
DataObjectConverter.subjectsToSubjectEntities(new ArrayList<Subject>(), 1L));
}
@Test
public void gradesConversionTest() {
List<Grade> gradeList = new ArrayList<>();
gradeList.add(new Grade().setDescription("Lorem ipsum"));
List<io.github.wulkanowy.data.db.dao.entities.Grade> gradeEntitiesList =
DataObjectConverter.gradesToGradeEntities(gradeList, 1L);
Assert.assertEquals("Lorem ipsum", gradeEntitiesList.get(0).getDescription());
}
@Test
public void gradeConversionEmptyTest() {
Assert.assertEquals(new ArrayList<>(),
DataObjectConverter.gradesToGradeEntities(new ArrayList<Grade>(), 1L));
}
@Test
public void dayConversionEmptyTest() {
Assert.assertEquals(new ArrayList<>(),
DataObjectConverter.daysToDaysEntities(new ArrayList<Day>()));
}
@Test
public void dayConversionTest() {
List<Day> dayList = new ArrayList<>();
dayList.add(new Day().setDate("20.12.2012"));
List<io.github.wulkanowy.data.db.dao.entities.Day> dayEntityList =
DataObjectConverter.daysToDaysEntities(dayList);
Assert.assertEquals("20.12.2012", dayEntityList.get(0).getDate());
}
@Test
public void lessonConversionEmptyTest() {
Assert.assertEquals(new ArrayList<>(),
DataObjectConverter.lessonsToTimetableLessonsEntities(new ArrayList<Lesson>()));
}
@Test
public void lessonConversionTest() {
List<Lesson> lessonList = new ArrayList<>();
lessonList.add(new Lesson().setRoom("20"));
List<TimetableLesson> lessonEntityList =
DataObjectConverter.lessonsToTimetableLessonsEntities(lessonList);
Assert.assertEquals("20", lessonEntityList.get(0).getRoom());
}
}

View File

@ -1,105 +0,0 @@
package io.github.wulkanowy.utils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.data.db.dao.entities.Grade;
public class EntitiesCompareTest {
private List<Grade> newList = new ArrayList<>();
private List<Grade> oldList = new ArrayList<>();
private Grade grade1;
private Grade grade2;
@Before
public void prepareObjects() {
grade1 = new Grade()
.setSubject("Matematyka")
.setValue("6")
.setColor("FFFFFF")
.setSymbol("S")
.setDescription("Lorem ipsum")
.setWeight("10")
.setDate("01.01.2017")
.setTeacher("Andrzej");
grade2 = new Grade()
.setSubject("Religia")
.setValue("6")
.setColor("FFFFFF")
.setSymbol("S")
.setDescription("Wolna wola")
.setWeight("10")
.setDate("01.01.2017")
.setTeacher("Andrzej");
}
@Test
public void testCompareNewGradeEmptyOldList() {
newList.add(grade1);
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
Assert.assertTrue(updatedList.get(0).getRead());
Assert.assertTrue(updatedList.get(0).getIsNew());
}
@Test
public void testCompareNewGradePositive() {
newList.add(grade1);
newList.add(grade2);
oldList.add(grade2);
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
Assert.assertFalse(updatedList.get(0).getIsNew());
Assert.assertTrue(updatedList.get(1).getIsNew());
}
@Test
public void testCompareNewGradeNegative() {
newList.add(grade1);
newList.add(grade1);
oldList.add(grade1);
oldList.add(grade2);
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
Assert.assertFalse(updatedList.get(0).getIsNew());
Assert.assertFalse(updatedList.get(1).getIsNew());
}
@Test
public void testCompareEmptyGradeList() {
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
Assert.assertEquals(new ArrayList<>(), updatedList);
}
@Test
public void testCompareReadGradeTest() {
newList.add(grade1);
newList.add(grade2);
oldList.add(grade2.setRead(true));
List<Grade> updatedList = EntitiesCompare.compareGradeList(newList, oldList);
Assert.assertTrue(updatedList.get(0).getRead());
Assert.assertFalse(updatedList.get(0).getIsNew());
Assert.assertFalse(updatedList.get(1).getRead());
Assert.assertTrue(updatedList.get(1).getIsNew());
}
}

View File

@ -1,85 +0,0 @@
package io.github.wulkanowy.utils;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.R;
import io.github.wulkanowy.data.db.dao.entities.Grade;
import io.github.wulkanowy.data.db.dao.entities.Subject;
import static org.junit.Assert.assertEquals;
public class GradeUtilsTest {
@Test
public void weightedAverageTest() {
List<Grade> gradeList = new ArrayList<>();
gradeList.add(new Grade().setValue("np.").setWeight("1,00"));
gradeList.add(new Grade().setValue("-5").setWeight("10,00"));
gradeList.add(new Grade().setValue("--5").setWeight("10,00"));
gradeList.add(new Grade().setValue("=5").setWeight("10,00"));
gradeList.add(new Grade().setValue("+5").setWeight("10,00"));
gradeList.add(new Grade().setValue("5").setWeight("10,00"));
List<Grade> gradeList1 = new ArrayList<>();
gradeList1.add(new Grade().setValue("np.").setWeight("1,00"));
gradeList1.add(new Grade().setValue("5-").setWeight("10,00"));
gradeList1.add(new Grade().setValue("5--").setWeight("10,00"));
gradeList1.add(new Grade().setValue("5=").setWeight("10,00"));
gradeList1.add(new Grade().setValue("5+").setWeight("10,00"));
gradeList1.add(new Grade().setValue("5").setWeight("10,00"));
assertEquals(4.8f, GradeUtils.calculateWeightedAverage(gradeList), 0.0f);
assertEquals(4.8f, GradeUtils.calculateWeightedAverage(gradeList1), 0.0f);
}
@Test
public void subjectsAverageTest() {
List<Subject> subjectList = new ArrayList<>();
subjectList.add(new Subject().setPredictedRating("2").setFinalRating("3"));
subjectList.add(new Subject().setPredictedRating("niedostateczny").setFinalRating("dopuszczający"));
subjectList.add(new Subject().setPredictedRating("dostateczny").setFinalRating("dobry"));
subjectList.add(new Subject().setPredictedRating("bardzo dobry").setFinalRating("celujący"));
subjectList.add(new Subject().setPredictedRating("2/3").setFinalRating("-4"));
assertEquals(3.8f, GradeUtils.calculateSubjectsAverage(subjectList, false), 0.0f);
assertEquals(2.75f, GradeUtils.calculateSubjectsAverage(subjectList, true), 0.0f);
}
@Test
public void abnormalAverageTest() {
List<Grade> gradeList = new ArrayList<>();
gradeList.add(new Grade().setValue("np.").setWeight("1,00"));
List<Subject> subjectList = new ArrayList<>();
subjectList.add(new Subject().setFinalRating("nieklasyfikowany"));
assertEquals(-1f, GradeUtils.calculateWeightedAverage(gradeList), 0.0f);
assertEquals(-1f, GradeUtils.calculateSubjectsAverage(subjectList, false), 0.0f);
}
@Test
public void getValueColorTest() {
assertEquals(R.color.grade_six, GradeUtils.getValueColor("-6"));
assertEquals(R.color.grade_five, GradeUtils.getValueColor("--5"));
assertEquals(R.color.grade_four, GradeUtils.getValueColor("=4"));
assertEquals(R.color.grade_three, GradeUtils.getValueColor("3-"));
assertEquals(R.color.grade_two, GradeUtils.getValueColor("2--"));
assertEquals(R.color.grade_two, GradeUtils.getValueColor("2="));
assertEquals(R.color.grade_one, GradeUtils.getValueColor("1+"));
assertEquals(R.color.grade_one, GradeUtils.getValueColor("+1"));
assertEquals(R.color.grade_default, GradeUtils.getValueColor("6 (.XI)"));
assertEquals(R.color.grade_default, GradeUtils.getValueColor("Np"));
assertEquals(R.color.grade_default, GradeUtils.getValueColor("7"));
assertEquals(R.color.grade_default, GradeUtils.getValueColor(""));
}
@Test
public void getShortGradeValueTest() {
assertEquals("6", GradeUtils.getShortGradeValue("celujący"));
assertEquals("1", GradeUtils.getShortGradeValue("niedostateczny"));
assertEquals("wzorowe", GradeUtils.getShortGradeValue("wzorowe"));
}
}

View File

@ -1,42 +0,0 @@
package io.github.wulkanowy.utils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import org.junit.Assert;
import org.junit.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class NetworkUtilsTest {
@Test
public void isOnlineTrueTest() {
NetworkInfo networkInfo = mock(NetworkInfo.class);
when(networkInfo.isConnectedOrConnecting()).thenReturn(true);
ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
when(connectivityManager.getActiveNetworkInfo()).thenReturn(networkInfo);
Context context = mock(Context.class);
when(context.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(connectivityManager);
Assert.assertTrue(NetworkUtils.isOnline(context));
}
@Test
public void isOnlineFalseTest() {
NetworkInfo networkInfo = mock(NetworkInfo.class);
when(networkInfo.isConnectedOrConnecting()).thenReturn(false);
ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
when(connectivityManager.getActiveNetworkInfo()).thenReturn(networkInfo);
Context context = mock(Context.class);
when(context.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(connectivityManager);
Assert.assertFalse(NetworkUtils.isOnline(context));
}
}