test(upserver): 归档存档迁移与玩法闭环回归工具

This commit is contained in:
Liubing\LB
2026-09-28 18:16:14 +08:00
parent c4ae02def9
commit a6f5e107f8
232 changed files with 12903 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
using Activity;
using asap.core;
void Check(bool value,string message){if(!value)throw new Exception(message);}
var evt=new cfg.FishingEvent{Type=1,SubType=2};
ActivitySentryManager.InitActivitySentryType(typeof(Sentry));
var first=GContext.container;
Check(first.Registrations.Count==1,"first container registration");
ActivitySentryManager.InitActivitySentryType(typeof(Sentry));
Check(first.Registrations.Count==1,"same container must not register twice");
Check(ActivitySentryManager.GetActivitySentryType(evt)==typeof(Sentry),"first discovery");
GContext.container=new Container();
ActivitySentryManager.InitActivitySentryType(typeof(Sentry));
Check(GContext.container.Registrations.Count==1,"new container must register cached type");
Check(ActivitySentryManager.GetTypeKey(typeof(Sentry))==(1,2),"new type key index");
GContext.container=new Container();
Check(ActivitySentryManager.GetActivitySentryType(evt)==typeof(Sentry),"lazy discovery after container replacement");
Check(GContext.container.Registrations.Count==1,"lazy discovery must register in new container");
Check(first.Registrations.Count==1,"old container remains untouched");
Console.WriteLine("PASS real ActivitySentryManager: explicit/lazy container replacement, duplicate guard, type-key cache");
[ActivitySentry(1,2)] public class Sentry:IActivitySentry{}
namespace Activity{public interface IActivitySentry{}}
namespace cfg{public class FishingEvent{public int Type,SubType;}}
namespace asap.core{
public static class GContext{public static Container container=new();}
public class Container{
public Dictionary<(Type,string),Type> Registrations=new();
public Container Register(Type service,string name,Type implementation){Registrations.Add((service,name),implementation);return this;}
public void PerScope(){}
}
}
namespace UnityEngine{public static class Debug{
public static void LogWarning(string message){}
public static void LogError(string message){throw new Exception(message);}
}}