package aceboot::orm.tests
import aceboot::orm.common.*
import std.unittest.*
import std.unittest.testmacro.*
// 探针仓储基类型(实现 RepositoryBase),验证工厂注册表。
class _ProbeRepo <: RepositoryBase {
public func createTable(): Unit {}
public func entityTable(): String {
"probe_table"
}
}
@Test
func test_repository_factory_registry() {
let before = repositoryFactoryCount()
registerRepositoryFactory("ProbeRepo", {=> _ProbeRepo()})
@Expect(repositoryFactoryCount(), before + 1)
// 工厂可被消费:取出、调用、拿到 RepositoryBase
var found = false
for ((name, factory) in repositoryFactories()) {
if (name == "ProbeRepo") {
found = true
@Expect(factory().entityTable(), "probe_table") // 工厂惰性创建并返回 RepositoryBase
}
}
@Expect(found, true)
}