Skip to content

Commit fbd9acd

Browse files
authored
Merge pull request #123 from Y-Note-SAS/feature-35623
Feature 35623
2 parents 5cbad08 + 5bc3884 commit fbd9acd

File tree

9 files changed

+690
-5
lines changed

9 files changed

+690
-5
lines changed

claimManagement/fakedatabase

0 Bytes
Binary file not shown.

claimManagement/fakemapping

0 Bytes
Binary file not shown.

claimManagement/src/main/java/org/openimis/imisclaims/MasterDataService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ private boolean isDatabaseValid(File databaseFile) {
127127
return isValid;
128128
}
129129

130-
private boolean tableExists(SQLiteDatabase db, String table) {
130+
protected boolean tableExists(SQLiteDatabase db, String table) {
131131
Cursor c = db.query("sqlite_master", new String[]{"tbl_name "}, "tbl_name = ?", new String[]{table}, null, null, null);
132132
boolean exists = c.getCount() > 0;
133133
c.close();

claimManagement/src/main/java/org/openimis/imisclaims/SearchClaimsActivity.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class SearchClaimsActivity extends ImisActivity {
3636
private final Calendar visitDateToCalendar = Calendar.getInstance();
3737
private final Calendar dateProcessedFromCalendar = Calendar.getInstance();
3838
private final Calendar dateProcessedToCalendar = Calendar.getInstance();
39+
protected FetchClaims fetchClaims;
3940

4041
private Spinner spinner;
4142

@@ -77,6 +78,7 @@ protected void onCreate(Bundle savedInstanceState) {
7778
dateProcessedToCalendar.setTimeInMillis(savedInstanceState.getLong(PROCESSED_TO));
7879
TextViewUtils.setDate(dateProcessedTo, dateProcessedToCalendar.getTime());
7980
}
81+
fetchClaims = new FetchClaims();
8082

8183
findViewById(R.id.clear).setOnClickListener(view -> {
8284
visitDateFrom.setText("");
@@ -119,7 +121,7 @@ public DatePickerDialog getDatePicker(TextView textView, Calendar calendar) {
119121
}
120122

121123
@Nullable
122-
private Claim.Status getStatus(Spinner spinner) {
124+
protected Claim.Status getStatus(Spinner spinner) {
123125
switch (spinner.getSelectedItemPosition()) {
124126
case 1:
125127
return Claim.Status.ENTERED;
@@ -137,14 +139,14 @@ private Claim.Status getStatus(Spinner spinner) {
137139
}
138140

139141
@Nullable
140-
private Date getDate(@NonNull EditText editText, @NonNull Calendar calendar) {
142+
protected Date getDate(@NonNull EditText editText, @NonNull Calendar calendar) {
141143
if (editText.length() != 0) {
142144
return calendar.getTime();
143145
}
144146
return null;
145147
}
146148

147-
private void getClaims(
149+
protected void getClaims(
148150
@Nullable String claimAdministratorCode,
149151
@Nullable Claim.Status status,
150152
@Nullable Date visitDateFrom,
@@ -156,7 +158,7 @@ private void getClaims(
156158
new Thread(() -> {
157159

158160
try {
159-
List<Claim> claims = new FetchClaims().execute(
161+
List<Claim> claims = fetchClaims.execute(
160162
claimAdministratorCode, status, visitDateFrom,
161163
visitDateTo, processedDateFrom, processedDateTo
162164
);
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
package org.openimis.imisclaims;
2+
3+
import static org.junit.Assert.*;
4+
import static org.mockito.Mockito.*;
5+
6+
import android.content.Intent;
7+
import android.database.Cursor;
8+
import android.widget.AutoCompleteTextView;
9+
import android.widget.Button;
10+
import android.widget.EditText;
11+
12+
import org.junit.Before;
13+
import org.junit.Test;
14+
import org.junit.runner.RunWith;
15+
import org.robolectric.Robolectric;
16+
import org.robolectric.RobolectricTestRunner;
17+
import org.robolectric.annotation.Config;
18+
19+
import java.util.HashMap;
20+
21+
@RunWith(RobolectricTestRunner.class)
22+
@Config(sdk = {28}, application = Global.class)
23+
public class AddItemsTest {
24+
25+
private AddItems activity;
26+
private AutoCompleteTextView etItems;
27+
private EditText etQuantity;
28+
private EditText etAmount;
29+
private Button btnAdd;
30+
private SQLHandler mockSqlHandler;
31+
32+
@Before
33+
public void setup() {
34+
mockSqlHandler = mock(SQLHandler.class);
35+
36+
// Initialize static list BEFORE creating activity
37+
ClaimActivity.lvItemList = new java.util.ArrayList<>();
38+
39+
activity = Robolectric.buildActivity(AddItems.class).create().get();
40+
activity.sqlHandler = mockSqlHandler;
41+
42+
etItems = activity.findViewById(R.id.etItems);
43+
etQuantity = activity.findViewById(R.id.etQuantity);
44+
etAmount = activity.findViewById(R.id.etAmount);
45+
btnAdd = activity.findViewById(R.id.btnAdd);
46+
}
47+
48+
@Test
49+
public void onCreate_disablesFieldsWhenReadonly() {
50+
Intent intent = new Intent();
51+
intent.putExtra(ClaimActivity.EXTRA_READONLY, true);
52+
53+
activity = Robolectric.buildActivity(AddItems.class, intent).create().get();
54+
55+
etItems = activity.findViewById(R.id.etItems);
56+
etQuantity = activity.findViewById(R.id.etQuantity);
57+
etAmount = activity.findViewById(R.id.etAmount);
58+
btnAdd = activity.findViewById(R.id.btnAdd);
59+
60+
assertFalse(etItems.isEnabled());
61+
assertFalse(etQuantity.isEnabled());
62+
assertFalse(etAmount.isEnabled());
63+
assertFalse(btnAdd.isEnabled());
64+
}
65+
66+
@Test
67+
public void addButton_isDisabledInitially() {
68+
assertFalse(btnAdd.isEnabled());
69+
}
70+
71+
@Test
72+
public void addButton_enablesWhenAllFieldsFilled() {
73+
etItems.setText("TEST001");
74+
etQuantity.setText("5");
75+
etAmount.setText("100");
76+
77+
assertTrue(btnAdd.isEnabled());
78+
}
79+
80+
@Test
81+
public void addButton_disablesWhenItemEmpty() {
82+
etItems.setText("");
83+
etQuantity.setText("5");
84+
etAmount.setText("100");
85+
86+
assertFalse(btnAdd.isEnabled());
87+
}
88+
89+
@Test
90+
public void addButton_disablesWhenQuantityEmpty() {
91+
etItems.setText("TEST001");
92+
etQuantity.setText("");
93+
etAmount.setText("100");
94+
95+
assertFalse(btnAdd.isEnabled());
96+
}
97+
98+
@Test
99+
public void addButton_disablesWhenAmountEmpty() {
100+
etItems.setText("TEST001");
101+
etQuantity.setText("5");
102+
etAmount.setText("");
103+
104+
assertFalse(btnAdd.isEnabled());
105+
}
106+
107+
@Test
108+
public void addButton_addsItemToList() {
109+
activity.oItem = new HashMap<>();
110+
activity.oItem.put("Code", "ITEM001");
111+
activity.oItem.put("Name", "Paracetamol");
112+
113+
etQuantity.setText("10");
114+
etAmount.setText("500");
115+
116+
int initialSize = ClaimActivity.lvItemList.size();
117+
btnAdd.performClick();
118+
119+
assertEquals(initialSize + 1, ClaimActivity.lvItemList.size());
120+
121+
HashMap<String, String> addedItem = ClaimActivity.lvItemList.get(initialSize);
122+
assertEquals("ITEM001", addedItem.get("Code"));
123+
assertEquals("Paracetamol", addedItem.get("Name"));
124+
assertEquals("500", addedItem.get("Price"));
125+
assertEquals("10", addedItem.get("Quantity"));
126+
}
127+
128+
@Test
129+
public void addButton_usesDefaultQuantityWhenEmpty() {
130+
activity.oItem = new HashMap<>();
131+
activity.oItem.put("Code", "ITEM001");
132+
activity.oItem.put("Name", "Paracetamol");
133+
134+
etQuantity.setText("");
135+
etAmount.setText("500");
136+
137+
btnAdd.performClick();
138+
139+
HashMap<String, String> addedItem = ClaimActivity.lvItemList.get(0);
140+
assertEquals("1", addedItem.get("Quantity"));
141+
}
142+
143+
@Test
144+
public void addButton_clearsFieldsAfterAdding() {
145+
activity.oItem = new HashMap<>();
146+
activity.oItem.put("Code", "ITEM001");
147+
activity.oItem.put("Name", "Paracetamol");
148+
149+
etItems.setText("TEST");
150+
etQuantity.setText("10");
151+
etAmount.setText("500");
152+
153+
btnAdd.performClick();
154+
155+
assertEquals("", etItems.getText().toString());
156+
assertEquals("", etQuantity.getText().toString());
157+
assertEquals("", etAmount.getText().toString());
158+
}
159+
160+
@Test
161+
public void addButton_doesNothingWhenItemNotSelected() {
162+
activity.oItem = null;
163+
164+
etQuantity.setText("10");
165+
etAmount.setText("500");
166+
167+
int initialSize = ClaimActivity.lvItemList.size();
168+
btnAdd.performClick();
169+
170+
assertEquals(initialSize, ClaimActivity.lvItemList.size());
171+
}
172+
}

0 commit comments

Comments
 (0)