public BeforeCommitTriggerDescriptor(Type entityType) { var triggerType = typeof(IBeforeCommitTrigger <>).MakeGenericType(entityType); var triggerMethod = triggerType.GetMethod(nameof(IBeforeCommitTrigger <object> .BeforeCommit)); _triggerType = triggerType; _invocationDelegate = TriggerTypeDescriptorHelpers.GetWeakDelegate(triggerType, entityType, triggerMethod); }
public AfterRollbackTriggerDescriptor(Type entityType) { var triggerType = typeof(IAfterRollbackTrigger <>).MakeGenericType(entityType); var triggerMethod = triggerType.GetMethod(nameof(IAfterRollbackTrigger <object> .AfterRollback)); _triggerType = triggerType; _invocationDelegate = TriggerTypeDescriptorHelpers.GetWeakDelegate(triggerType, entityType, triggerMethod); }
public async Task CreateWeakDelegate_WrapsTargetMethod() { var triggerStub = new TriggerStub <object>(); var triggerContextStub = new TriggerContextStub <object>(); var weakDelegate = TriggerTypeDescriptorHelpers.GetWeakDelegate(typeof(IBeforeSaveTrigger <object>), typeof(object), typeof(IBeforeSaveTrigger <object>).GetMethod("BeforeSave")); await weakDelegate(triggerStub, triggerContextStub, default); Assert.NotEmpty(triggerStub.BeforeSaveInvocations); }