private static InjectBehaviourPolicy CreateRetryChaos(IPolicies policies) { return(MonkeyPolicy.InjectBehaviour((context) => throw new SqliteException( "Policy chaos testing", Convert.ToInt32(ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>())), (context) => ChaosPolicyShared.InjectionRate(context, RetryConstants.RetryCount, RetryAttempts), (context) => policies.EnableChaos)); }
private static InjectOutcomePolicy CreateRetryChaos(IPolicies policies) { var fault = new SQLiteException( (SQLiteErrorCode)ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>(), "Policy chaos testing"); return(MonkeyPolicy.InjectException(with => with.Fault(fault) .InjectionRate((context, token) => ChaosPolicyShared.InjectionRate(context, RetryConstants.RetryCount, RetryAttempts)) .Enabled(policies.EnableChaos) )); }
private static void Behaviour(Context arg1) { SqlError sqlError = null; #if NETFULL sqlError = CreateInstance <SqlError>(Convert.ToInt32(ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>()), null, null, null, null, null, null); #else sqlError = CreateInstance <SqlError>(Convert.ToInt32(ChaosPolicyShared.GetRandomEnum <RetryableSqlErrors>()), null, null, null, null, null, null, null); #endif var collection = CreateInstance <SqlErrorCollection>(); #if NETFULL var errors = collection.GetPrivateFieldValue <ArrayList>("errors"); errors.Add(sqlError); #else var errors = collection.GetPrivateFieldValue <List <object> > ("_errors"); errors.Add(sqlError); #endif var e = CreateInstance <SqlException>(string.Empty, collection, null, Guid.NewGuid()); throw e; }