Exemple #1
0
        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();
        }
Exemple #2
0
        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");
        }
Exemple #4
0
        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)
            {
                
            }
        }
Exemple #6
0
        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));
                });
            });
        }
Exemple #7
0
 static DynamicRepository()
 {
     WriteDevLog = false;
     LogSql      = LogSqlDelegate;
     Gemini.Extend <DynamicRepository, DynamicQuery>();
 }
Exemple #8
0
 static MemoizedRecords()
 {
     Gemini.Extend <MemoizedRecords, Memoize>();
 }
Exemple #9
0
 static CachedClass()
 {
     Gemini.Extend <CachedClass, Memoize>();
 }