java.lang.AssertionError:
JSON path "$.data"
Expected: null
but: was "unknown_legacy_xyz"
at com.etotem.cfc.integration.controller.DimensionRegistryMapContractTest.map_unknownLegacy_returnsNullData(DimensionRegistryMapContractTest.java:76)
Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-06 02:23:05.640 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-06 02:23:05.641 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-06 02:23:05.643 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-06 02:23:05.643 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-06 02:23:05.644 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-06 02:23:05.645 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Preparing: INSERT INTO user_operation_logs ( user_id, operation_type, description, request_path, request_method, response_status, client_ip, created_at ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )
2026-11-06 02:23:05.645 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Parameters: -1(Long), get(String), GET /api/dimension-registry/map(String), /api/dimension-registry/map(String), GET(String), 200(Integer), 127.0.0.1(String), 2026-11-06 02:23:05.643(Timestamp)
2026-11-06 02:23:05.646 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : <== Updates: 1
MockHttpServletRequest:
HTTP Method = GET
Request URI = /api/dimension-registry/map
Parameters = {legacy=[unknown_legacy_xyz]}
Headers = []
Body = null
Session Attrs = {}
Handler:
Type = com.etotem.cfc.controller.admin.DimensionRegistryController
Method = com.etotem.cfc.controller.admin.DimensionRegistryController#map(String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Security-Policy:"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self' http://localhost:* https://*; font-src 'self' data:;", Referrer-Policy:"no-referrer", Permissions-Policy:"geolocation=(), microphone=(), camera=()", Access-Control-Allow-Private-Network:"true", Vary:"Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers", Content-Type:"application/json", X-Content-Type-Options:"nosniff", X-XSS-Protection:"1; mode=block", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"]
Content type = application/json
Body = {"code":200,"message":"success","data":"unknown_legacy_xyz"}
Forwarded URL = null
Redirected URL = null
Cookies = []
]]>
java.lang.AssertionError:
JSON path "$.data"
Expected: null
but: was ""
at com.etotem.cfc.integration.controller.DimensionRegistryMapContractTest.map_emptyLegacy_returnsNullData(DimensionRegistryMapContractTest.java:85)
Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-06 02:23:05.695 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-06 02:23:05.696 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-06 02:23:05.698 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-06 02:23:05.699 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-06 02:23:05.700 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-06 02:23:05.700 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Preparing: INSERT INTO user_operation_logs ( user_id, operation_type, description, request_path, request_method, response_status, client_ip, created_at ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )
2026-11-06 02:23:05.700 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Parameters: -1(Long), get(String), GET /api/dimension-registry/map(String), /api/dimension-registry/map(String), GET(String), 200(Integer), 127.0.0.1(String), 2026-11-06 02:23:05.698(Timestamp)
2026-11-06 02:23:05.701 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : <== Updates: 1
MockHttpServletRequest:
HTTP Method = GET
Request URI = /api/dimension-registry/map
Parameters = {legacy=[]}
Headers = []
Body = null
Session Attrs = {}
Handler:
Type = com.etotem.cfc.controller.admin.DimensionRegistryController
Method = com.etotem.cfc.controller.admin.DimensionRegistryController#map(String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Security-Policy:"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self' http://localhost:* https://*; font-src 'self' data:;", Referrer-Policy:"no-referrer", Permissions-Policy:"geolocation=(), microphone=(), camera=()", Access-Control-Allow-Private-Network:"true", Vary:"Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers", Content-Type:"application/json", X-Content-Type-Options:"nosniff", X-XSS-Protection:"1; mode=block", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"]
Content type = application/json
Body = {"code":200,"message":"success","data":""}
Forwarded URL = null
Redirected URL = null
Cookies = []
]]>
but was:<200>
at com.etotem.cfc.integration.controller.DimensionRegistryMapContractTest.map_missingLegacy_returnsBadRequest(DimensionRegistryMapContractTest.java:92)
]]>
Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-06 02:23:05.742 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-06 02:23:05.743 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-06 02:23:05.747 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Preparing: SELECT id,openid,unionid,family_id,role,roles,nickname,avatar,password,id_card,real_name,phone,session_key,birthday,birth_hour,gender,total_points,teacher_family_ids,teacher_no,teacher_photo,certificate_image,teacher_status,teacher_reject_reason,address,province,city,district,street,ethnicity,blood_type,highest_education,marital_status,hobbies,diet_preferences,family_role,vendor_type,vendor_status,vendor_reject_reason,show_to_family,mascot,portrait_prompt,is_family_admin,is_child,vendor_info,referrer_id,family_inviter_id,referral_code,member_level,member_expire_time,total_consumption,upgrade_from_consumption,direct_count,indirect_count,total_commission_earned,butler_status,butler_info,butler_approved_at,nutritionist_status,nutritionist_reject_reason,article_admin_status,activity_provider_status,created_at,updated_at,deleted FROM users WHERE id=? AND deleted=0
2026-11-06 02:23:05.747 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : ==> Parameters: -1(Long)
2026-11-06 02:23:05.749 DEBUG 17028 --- [ main] c.e.cfc.mapper.UserMapper.selectById : <== Total: 0
2026-11-06 02:23:05.749 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Preparing: INSERT INTO user_operation_logs ( user_id, operation_type, description, request_path, request_method, response_status, client_ip, created_at ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )
2026-11-06 02:23:05.750 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : ==> Parameters: -1(Long), get(String), GET /api/dimension-registry/map(String), /api/dimension-registry/map(String), GET(String), 200(Integer), 127.0.0.1(String), 2026-11-06 02:23:05.747(Timestamp)
2026-11-06 02:23:05.751 DEBUG 17028 --- [ main] c.e.c.m.UserOperationLogMapper.insert : <== Updates: 1
MockHttpServletRequest:
HTTP Method = GET
Request URI = /api/dimension-registry/map
Parameters = {}
Headers = []
Body = null
Session Attrs = {}
Handler:
Type = com.etotem.cfc.controller.admin.DimensionRegistryController
Method = com.etotem.cfc.controller.admin.DimensionRegistryController#map(String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = org.springframework.web.bind.MissingServletRequestParameterException
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Security-Policy:"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self' http://localhost:* https://*; font-src 'self' data:;", Referrer-Policy:"no-referrer", Permissions-Policy:"geolocation=(), microphone=(), camera=()", Access-Control-Allow-Private-Network:"true", Vary:"Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers", Content-Type:"application/json", X-Content-Type-Options:"nosniff", X-XSS-Protection:"1; mode=block", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"]
Content type = application/json
Body = {"code":400,"message":"缺少必填参数: legacy","data":null}
Forwarded URL = null
Redirected URL = null
Cookies = []
]]>