void specify_a_class_can_be_extended_globally() { dynamic personToExtend = new PersonToExtend(); ((bool)personToExtend.RespondsTo("Changes")).should_be_false(); Gemini.Extend <PersonToExtend, Changes>(); personToExtend = new PersonToExtend(); ((bool)personToExtend.RespondsTo("Changes")).should_be_true(); }
void specify_permitted_parameters_are_allowed_to_be_set_view_mass_assignment() { dynamic foobar = new Gemini(new { FirstName = "Jane", LastName = "Doe" }); foobar.Extend <StrongParameters>(); foobar.Permit("FirstName", "LastName"); foobar.SetMembers(new { FirstName = "First", LastName = "Last" }); (foobar.FirstName as string).should_be("First"); (foobar.LastName as string).should_be("Last"); }
void specify_permitted_parameters_are_allowed_to_be_set_view_mass_assignment() { dynamic foobar = new Gemini(new { FirstName = "Jane", LastName = "Doe" }); foobar.Extend<StrongParameters>(); foobar.Permit("FirstName", "LastName"); foobar.SetMembers(new { FirstName = "First", LastName = "Last" }); (foobar.FirstName as string).should_be("First"); (foobar.LastName as string).should_be("Last"); }
void specify_exception_is_thrown_if_mass_assignment_is_performed_on_non_permitted_parameters() { dynamic foobar = new Gemini(new { FirstName = "Jane", LastName = "Doe" }); foobar.Extend <StrongParameters>(); foobar.Permit("FirstName"); try { foobar.SetMembers(new { FirstName = "First", LastName = "Last" }); throw new Exception("Exception was not thrown"); } catch (InvalidOperationException ex) { } }
void specify_exception_is_thrown_if_mass_assignment_is_performed_on_non_permitted_parameters() { dynamic foobar = new Gemini(new { FirstName = "Jane", LastName = "Doe" }); foobar.Extend<StrongParameters>(); foobar.Permit("FirstName"); try { foobar.SetMembers(new { FirstName = "First", LastName = "Last" }); throw new Exception("Exception was not thrown"); } catch (InvalidOperationException) { } }
public static void Mixins() { Gemini.Extend <DynamicModels>(d => { d.Exclude = new DynamicFunctionWithParam(excludeList => { var list = excludeList as IEnumerable <dynamic>; var result = new List <dynamic>(); foreach (var item in d) { if (list.Any(s => s.Id == item.Id)) { continue; } result.Add(item); } return(new DynamicModels(result)); }); }); }
static DynamicRepository() { WriteDevLog = false; LogSql = LogSqlDelegate; Gemini.Extend <DynamicRepository, DynamicQuery>(); }
static MemoizedRecords() { Gemini.Extend <MemoizedRecords, Memoize>(); }
static CachedClass() { Gemini.Extend <CachedClass, Memoize>(); }