\Tests\FeatureIpRegionTest

IP 归属地解析

被测对象:IpRegion::find(qqwry.dat 二分解析) 守护约定:库文件随仓库分发(database/data-source/qqwry.dat),公网 IP 命中返回 非空 UTF-8 归属地;非法 IP/库缺失返回空串,绝无异常。

Summary

Methods
Properties
Constants
test_database_file_exists()
test_public_ip_resolves_to_location()
test_invalid_ip_returns_empty()
test_missing_database_returns_empty()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

test_database_file_exists()

test_database_file_exists() : void

库文件随仓库分发且可解析(数据源缺失视为环境失败,不静默跳过)

test_public_ip_resolves_to_location()

test_public_ip_resolves_to_location() : void

公网 IP 命中返回非空归属地(UTF-8 可编码)

test_invalid_ip_returns_empty()

test_invalid_ip_returns_empty() : void

非法 IP 安全返回空串

test_missing_database_returns_empty()

test_missing_database_returns_empty() : void

库文件缺失安全返回空串(不抛异常)

requireRedis()

requireRedis() : void

Redis 依赖探针:直连 Redis 的测试(限流/会话/验证码)在无 Redis 环境(如 CI) 跳过而非失败——其余用例不受影响。CI 可设 TEST_REQUIRE_REDIS=1 强制模式: Redis 不可达即失败而非跳过,安全回归套件不允许静默消失。

buildCacheRegistry()

buildCacheRegistry(array  $items) : void

建缓存注册表最小 schema(td_sys_cache)并灌入注册项。

测试跑 sqlite :memory:,生产迁移含 PostgreSQL 专属 DDL 跑不通(DataScopeServiceTest 同因自建 schema); 而 CacheManager::registry() 现已从数据库表读取——凡走注册表的测试(remember/get/key/失效推导) 必须在 setUp 先调用本方法,否则注册表为空、remember 未登记名会走「自动登记」路径。

Parameters

array $items