6 changed files with 241 additions and 21 deletions
-
12app/src/main/java/com/ouxuan/oxface/network/OrderVerificationResultHandler.java
-
43app/src/main/java/com/ouxuan/oxface/network/api/PadApiService.java
-
12app/src/main/java/com/ouxuan/oxface/orderOX/OrderSelectionActivity.java
-
13app/src/main/java/com/ouxuan/oxface/orderOX/adapter/OrderSelectionAdapter.java
-
44app/src/main/java/com/ouxuan/oxface/orderOX/model/OrderVerificationData.java
-
130app/src/test/java/com/ouxuan/oxface/OrderVerificationDataTest.java
@ -0,0 +1,130 @@ |
|||
package com.ouxuan.oxface; |
|||
|
|||
import com.google.gson.Gson; |
|||
import com.google.gson.JsonElement; |
|||
import com.google.gson.JsonObject; |
|||
import com.google.gson.JsonPrimitive; |
|||
import com.ouxuan.oxface.orderOX.model.OrderVerificationData; |
|||
|
|||
import org.junit.Test; |
|||
import org.junit.runner.RunWith; |
|||
import org.robolectric.RobolectricTestRunner; |
|||
import org.robolectric.annotation.Config; |
|||
|
|||
import static org.junit.Assert.assertEquals; |
|||
import static org.junit.Assert.assertTrue; |
|||
|
|||
@RunWith(RobolectricTestRunner.class) |
|||
@Config(sdk = 28) |
|||
public class OrderVerificationDataTest { |
|||
|
|||
@Test |
|||
public void testGetCardNoFromInfo_withJsonObject() { |
|||
OrderVerificationData.OrderItem orderItem = new OrderVerificationData.OrderItem(); |
|||
|
|||
// 创建一个JsonObject作为info字段 |
|||
JsonObject infoObject = new JsonObject(); |
|||
infoObject.addProperty("card_no", "123456"); |
|||
infoObject.addProperty("rest_number", 10); |
|||
|
|||
orderItem.setInfo(infoObject); |
|||
|
|||
// 验证能正确提取card_no |
|||
assertEquals("123456", orderItem.getCardNoFromInfo()); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetCardNoFromInfo_withJsonPrimitive() { |
|||
OrderVerificationData.OrderItem orderItem = new OrderVerificationData.OrderItem(); |
|||
|
|||
// 创建一个JsonPrimitive作为info字段 |
|||
JsonPrimitive infoPrimitive = new JsonPrimitive("预订信息内容"); |
|||
orderItem.setInfo(infoPrimitive); |
|||
|
|||
// 验证返回空字符串 |
|||
assertEquals("", orderItem.getCardNoFromInfo()); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetInfoAsString_withJsonPrimitive() { |
|||
OrderVerificationData.OrderItem orderItem = new OrderVerificationData.OrderItem(); |
|||
|
|||
// 创建一个JsonPrimitive作为info字段 |
|||
JsonPrimitive infoPrimitive = new JsonPrimitive("预订信息内容"); |
|||
orderItem.setInfo(infoPrimitive); |
|||
|
|||
// 验证能正确获取字符串内容 |
|||
assertEquals("预订信息内容", orderItem.getInfoAsString()); |
|||
} |
|||
|
|||
@Test |
|||
public void testGetInfoAsString_withJsonObject() { |
|||
OrderVerificationData.OrderItem orderItem = new OrderVerificationData.OrderItem(); |
|||
|
|||
// 创建一个JsonObject作为info字段 |
|||
JsonObject infoObject = new JsonObject(); |
|||
infoObject.addProperty("card_no", "123456"); |
|||
infoObject.addProperty("rest_number", 10); |
|||
|
|||
orderItem.setInfo(infoObject); |
|||
|
|||
// 验证返回空字符串 |
|||
assertEquals("", orderItem.getInfoAsString()); |
|||
} |
|||
|
|||
@Test |
|||
public void testOrderType1_withStringInfo() { |
|||
// 测试order_type为1时,info字段为字符串的情况 |
|||
String json = "{\n" + |
|||
" \"order_no\": \"MC20250313171548535218\",\n" + |
|||
" \"order_type\": 1,\n" + |
|||
" \"project\": \"测试人次票\",\n" + |
|||
" \"info\": \"这是人次票的预订信息\",\n" + |
|||
" \"v_code\": [\"2503215744\"]\n" + |
|||
"}"; |
|||
|
|||
Gson gson = new Gson(); |
|||
OrderVerificationData.OrderItem orderItem = gson.fromJson(json, OrderVerificationData.OrderItem.class); |
|||
|
|||
// 验证订单类型 |
|||
assertEquals(1, orderItem.getOrder_type()); |
|||
|
|||
// 验证项目名称 |
|||
assertEquals("测试人次票", orderItem.getProject()); |
|||
|
|||
// 验证info字段 |
|||
assertTrue(orderItem.getInfo() instanceof JsonPrimitive); |
|||
assertEquals("这是人次票的预订信息", orderItem.getInfoAsString()); |
|||
assertEquals("", orderItem.getCardNoFromInfo()); |
|||
} |
|||
|
|||
@Test |
|||
public void testOrderType3_withObjectInfo() { |
|||
// 测试order_type为3时,info字段为对象的情况 |
|||
String json = "{\n" + |
|||
" \"order_no\": \"MC20250313171548535218\",\n" + |
|||
" \"order_type\": 3,\n" + |
|||
" \"project\": \"测试年月卡\",\n" + |
|||
" \"info\": {\n" + |
|||
" \"card_no\": \"250313397\",\n" + |
|||
" \"rest_number\": 100,\n" + |
|||
" \"status\": 0\n" + |
|||
" },\n" + |
|||
" \"v_code\": [\"2503215744\"]\n" + |
|||
"}"; |
|||
|
|||
Gson gson = new Gson(); |
|||
OrderVerificationData.OrderItem orderItem = gson.fromJson(json, OrderVerificationData.OrderItem.class); |
|||
|
|||
// 验证订单类型 |
|||
assertEquals(3, orderItem.getOrder_type()); |
|||
|
|||
// 验证项目名称 |
|||
assertEquals("测试年月卡", orderItem.getProject()); |
|||
|
|||
// 验证info字段 |
|||
assertTrue(orderItem.getInfo() instanceof JsonObject); |
|||
assertEquals("250313397", orderItem.getCardNoFromInfo()); |
|||
assertEquals("", orderItem.getInfoAsString()); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue