module tagion.testbench.hirpc_verifier; import tagion.actor; import tagion.behaviour.Behaviour; import tagion.crypto.SecureInterfaceNet; import tagion.crypto.SecureNet; import tagion.services.hirpc_verifier; import tagion.services.options : TaskNames; import tagion.testbench.services; import tagion.tools.Basic; import tagion.utils.pretend_safe_concurrency; mixin Main!(_main); int _main(string[] _) { immutable SecureNet net = (() @trusted => cast(immutable) new StdSecureNet())(); enum hirpc_verifier_name = __MODULE__ ~ "_hirpc_verifier"; enum hirpc_verifier_rejected = __MODULE__ ~ "_hirpc_verifier_reject"; enum hirpc_verifier_success = __MODULE__ ~ "_hirpc_verifier_success"; // 'Collector' register(hirpc_verifier_rejected, thisTid); register(hirpc_verifier_success, thisTid); const opts = HiRPCVerifierOptions( true, hirpc_verifier_rejected, ); TaskNames _task_names; _task_names.collector = hirpc_verifier_success; auto hirpc_verifier_handle = spawn!HiRPCVerifierService(hirpc_verifier_name, opts, cast(immutable) _task_names); auto hirpc_verifier_feature = automation!(hirpc_verifier); hirpc_verifier_feature.TheDocumentIsNotAHiRPC(hirpc_verifier_handle, hirpc_verifier_success, hirpc_verifier_rejected); hirpc_verifier_feature.CorrectHiRPCFormatAndPermission(hirpc_verifier_handle, hirpc_verifier_success, hirpc_verifier_rejected); hirpc_verifier_feature.CorrectHiRPCWithPermissionDenied(hirpc_verifier_handle, hirpc_verifier_success, hirpc_verifier_rejected); hirpc_verifier_feature.HIRPCWithIllegalMethod(hirpc_verifier_handle, hirpc_verifier_success, hirpc_verifier_rejected); hirpc_verifier_feature.run; waitforChildren(Ctrl.END); return 0; }