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