| package org.apache.fineract.ui.online.groups.creategroup |
| |
| import android.content.Intent |
| import androidx.test.espresso.Espresso.onView |
| import androidx.test.espresso.action.ViewActions.click |
| import androidx.test.espresso.action.ViewActions.typeText |
| import androidx.test.espresso.matcher.ViewMatchers.withId |
| import androidx.test.espresso.matcher.ViewMatchers.withText |
| import androidx.test.ext.junit.runners.AndroidJUnit4 |
| import androidx.test.platform.app.InstrumentationRegistry |
| import androidx.test.rule.ActivityTestRule |
| import org.apache.fineract.R |
| import org.apache.fineract.couchbase.SynchronizationManager |
| import org.apache.fineract.data.models.Group |
| import org.apache.fineract.ui.online.groups.GroupAction |
| import org.apache.fineract.utils.Constants |
| import org.apache.fineract.utils.toDataClass |
| import org.junit.After |
| import org.junit.Assert.assertEquals |
| import org.junit.Before |
| import org.junit.Rule |
| import org.junit.Test |
| import org.junit.runner.RunWith |
| |
| /** |
| * Created by Ahmad Jawid Muhammadi on 24/8/20. |
| */ |
| |
| @RunWith(AndroidJUnit4::class) |
| class CreateGroupActivityAndroidTest { |
| |
| @get:Rule |
| var activityTestRule = |
| ActivityTestRule<CreateGroupActivity>(CreateGroupActivity::class.java, false, false) |
| |
| lateinit var synchronizationManager: SynchronizationManager |
| |
| @Before |
| fun before() { |
| //Open CreateGroupActivity with an intent by putting create group action as an extra |
| val intent = Intent().apply { |
| putExtra(Constants.GROUP_ACTION, GroupAction.CREATE) |
| } |
| activityTestRule.launchActivity(intent) |
| synchronizationManager = SynchronizationManager( |
| InstrumentationRegistry.getInstrumentation().context |
| ) |
| } |
| |
| @Test |
| fun createGroupItem() { |
| onView(withId(R.id.etIdentifier)) |
| .perform(typeText("testIdentifier")) |
| onView(withId(R.id.etGroupDefinitionIdentifier)) |
| .perform(typeText("group definition")) |
| onView(withId(R.id.etName)) |
| .perform(typeText("group name")) |
| onView(withId(R.id.etOffice)) |
| .perform(typeText("office name")) |
| onView(withId(R.id.etAssignedEmployee)) |
| .perform(typeText("assignedEmployee")) |
| |
| //go to next fragment |
| onView(withText("NEXT")).perform(click()) |
| |
| //Add a member |
| onView(withId(R.id.ibAddMember)) |
| .perform(click()) |
| onView(withId(R.id.etNewMember)) |
| .perform(typeText("Ahmad")) |
| onView(withId((R.id.btnAddMember))) |
| .perform(click()) |
| onView(withText("NEXT")).perform(click()) |
| |
| //Add leader name |
| onView(withId(R.id.ibAddLeader)) |
| .perform(click()) |
| onView(withId(R.id.etNewLeader)) |
| .perform(typeText("Jawid")) |
| onView(withId((R.id.btnAddLeader))) |
| .perform(click()) |
| onView(withText("NEXT")).perform(click()) |
| |
| //fill address details |
| onView(withId(R.id.etStreet)) |
| .perform(typeText("Street")) |
| onView(withId(R.id.etCity)) |
| .perform(typeText("Pune")) |
| onView(withId(R.id.etRegion)) |
| .perform(typeText("Region")) |
| onView(withId(R.id.etPostalCode)) |
| .perform(typeText("411048")) |
| onView(withId(R.id.etCountry)) |
| .perform(typeText("India")) |
| onView(withText("NEXT")).perform(click()) |
| onView(withText("COMPLETE")).perform(click()) |
| |
| //Then assert if group item has been created |
| val mapItem = synchronizationManager.getDocumentForTest( |
| "testIdentifier", |
| InstrumentationRegistry.getInstrumentation().context |
| ) |
| val groupItem = mapItem.toDataClass<Group>() |
| assertEquals(groupItem.identifier, "testIdentifier") |
| assertEquals(groupItem.name, "group name") |
| } |
| |
| @After |
| fun after() { |
| //delete the created document in test |
| synchronizationManager.deleteDocument( |
| "testIdentifier" |
| ) |
| } |
| } |