Ejemplo n.º 1
0
        private static Purchase CreatePurchase(CallScenario scenario, CallResolution correctResolution)
        {
            var policies = CurrentGameState.State.ActivePolicies;

            Purchase purchase;
            int      numAttempts = 0;

            while (true)
            {
                numAttempts++;
                purchase = Purchase.Create(DateWithinDays(90), scenario.Product);
                var call       = new ResolvedCall(new Optional <Purchase>(purchase), correctResolution, correctResolution);
                var violations = policies.GetViolations(correctResolution, call);
                if (!violations.Any() || correctResolution == CallResolution.Reject)
                {
                    break;
                }
            }

            scenario.Target = new Optional <Purchase>(purchase);
            Debug.WriteLine($"Created target purchase in {numAttempts} attempts");
            return(purchase);
        }
Ejemplo n.º 2
0
 public bool MeetsPolicy(CallResolution resolution, ResolvedCall call)
 {
     return(!Applies(resolution) || _condition(call));
 }
Ejemplo n.º 3
0
 public List <Policy> GetViolations(CallResolution resolution, ResolvedCall call)
 {
     return(_policies.Where(x => !x.MeetsPolicy(resolution, call)).ToList());
 }