Ejemplo n.º 1
0
        public void name_of_the_instance_comes_from_the_name_of_the_inner_object_def()
        {
            var def      = new ObjectDef(typeof(FakeJsonBehavior));
            var instance = new ObjectDefInstance(def);

            instance.Name.ShouldEqual(def.Name);
        }
Ejemplo n.º 2
0
        private IActionBehavior behavior(DiagnosticLevel level)
        {
            var objectDef = theNode.As <IContainerModel>().ToObjectDef(level);
            var instance  = new ObjectDefInstance(objectDef);

            return(theContainer.GetInstance <IActionBehavior>(instance));
        }
Ejemplo n.º 3
0
        public void make_sure_we_can_actually_build_it()
        {
            var instance  = new ObjectDefInstance(endpointObjectDef);
            var container = new Container();

            container.GetInstance <IEndPointAuthorizor>(instance)
            .ShouldBeOfType <EndPointAuthorizor>()
            .Policies.Cast <AllowRole>().Select(x => x.Role)
            .ShouldHaveTheSameElementsAs("RoleA", "RoleB", "RoleC");
        }
 public ObjectDefInstanceValidator(ObjectDef m, ObjectDefInstance mv)
 {
     if (m == null)
     {
         throw new ArgumentNullException("Object Def", "The Object Definition cannot be null.");
     }
     if (mv == null)
     {
         throw new ArgumentNullException("Object Def Instance", "The Object Definition instance cannot be null.");
     }
     _m  = m;
     _mv = mv;
 }
        public void build_an_object_with_a_list_dependency()
        {
            var def = new ObjectDef(typeof (ClassWithSomethings));

            var listDependency = def.ListDependenciesOf<ISomething>();

            listDependency.AddType(typeof (SomethingA));
            listDependency.AddType(typeof (SomethingB));
            listDependency.AddValue(new SomethingC());

            var instance = new ObjectDefInstance(def);

            var container = new Container();
            var @object = container.GetInstance<ClassWithSomethings>(instance);

            @object.Somethings[0].ShouldBeOfType<SomethingA>();
            @object.Somethings[1].ShouldBeOfType<SomethingB>();
            @object.Somethings[2].ShouldBeOfType<SomethingC>();
        }
Ejemplo n.º 6
0
        public void build_an_object_with_a_list_dependency()
        {
            var def = new ObjectDef(typeof(ClassWithSomethings));


            var listDependency = def.ListDependenciesOf <ISomething>();

            listDependency.AddType(typeof(SomethingA));
            listDependency.AddType(typeof(SomethingB));
            listDependency.AddValue(new SomethingC());

            var instance = new ObjectDefInstance(def);

            var container = new Container();
            var @object   = container.GetInstance <ClassWithSomethings>(instance);

            @object.Somethings[0].ShouldBeOfType <SomethingA>();
            @object.Somethings[1].ShouldBeOfType <SomethingB>();
            @object.Somethings[2].ShouldBeOfType <SomethingC>();
        }
Ejemplo n.º 7
0
        public void SetUp()
        {
            var node = new OutputNode(typeof(Address));

            node.Add(new JsonSerializer());
            node.Add(new XmlFormatter());
            node.Add(new FakeAddressWriter(), new SomeConditional());

            var container = StructureMapContainerFacility.GetBasicFubuContainer();

            container.Configure(x =>
            {
                // Need a stand in value
                x.For <IHttpRequest>().Use(MockRepository.GenerateMock <IHttpRequest>());
            });

            var objectDef = node.As <IContainerModel>().ToObjectDef();
            var instance  = new ObjectDefInstance(objectDef);

            theInputBehavior = container.GetInstance <OutputBehavior <Address> >(instance);
        }
Ejemplo n.º 8
0
 public ObjectDefInstanceValidationAttribute(ValidationAttribute attr, ObjectDefInstance mv) : base()
 {
     _attr = attr;
     _mv   = mv;
 }
Ejemplo n.º 9
0
        public void EvalDefaults(ObjectDef objDef, ObjectDefInstance instance)
        {
            if (objDef == null)
            {
                return;
            }
            CodeDomProvider    provider = provider = CodeDomProvider.CreateProvider("CSharp");
            CompilerParameters cp       = new CompilerParameters();

            cp.GenerateExecutable    = false;
            cp.GenerateInMemory      = true;
            cp.TreatWarningsAsErrors = false;
            cp.ReferencedAssemblies.Add(this.GetType().Assembly.Location);
            string        key    = KeyGenerator.GetString();
            StringBuilder sb     = new StringBuilder();
            var           qProps = objDef.Properties.Where(p => !string.IsNullOrEmpty(p.DefaultExpression));

            foreach (var mp in qProps)
            {
                sb.AppendLine(@"
        public static object Execute" + mp.Name + @"() 
        { 
            return " + mp.DefaultExpression + @";
        }"
                              );
            }
            string          source = @"
using System; 
using Iv.Common;
using Iv.Text;
using Iv.Calendar;
namespace Namespace" + key + @"
{ 
    public class Class" + key + @"
    {" + sb.ToString() + @"
    }
}";
            CompilerResults cr     = provider.CompileAssemblyFromSource(cp, source);

            if (cr.Errors.Count > 0)
            {
                //TODO: log errors
                foreach (CompilerError ce in cr.Errors)
                {
                    Console.Out.WriteLine("  {0}", ce.ToString());
                }
            }
            else
            {
                object     obj = cr.CompiledAssembly.CreateInstance(string.Format("Namespace{0}.Class{0}", key));
                MethodInfo mi;
                foreach (var mp in qProps)
                {
                    mi = obj.GetType().GetMethod("Execute" + mp.Name, BindingFlags.Public | BindingFlags.Static);
                    var result = mi.Invoke(obj, null);
                    if (instance.Properties.ContainsKey(mp.Name))
                    {
                        instance.Properties[mp.Name] = result;
                    }
                }
            }
        }
 public static void MapReaderObjectDefInstance(SqlDataReader rdr, ObjectDef obj, ObjectDefInstance instance, DataOperation operation = DataOperation.None)
 {
     if (!rdr.IsClosed)
     {
         // TODO: cache the properties
         var props = from prop in obj.Properties
                     select prop;
         foreach (var p in props)
         {
             object value = null;
             if (rdr.ContainsColumn(p.ColumnName) && !p.HasIgnoreColumn(operation))
             {
                 rdr.TryGetValue(p.NetTypeName, p.Name, ref value);
                 if (instance.Properties.ContainsKey(p.Name))
                 {
                     instance.Properties[p.Name] = value;
                 }
             }
         }
     }
 }
        public static void DeriveInstanceParameters(SqlCommand cmd, ObjectDef objDef, ObjectDefInstance instance, DataOperation operation = DataOperation.None)
        {
            var props = from prop in objDef.Properties
                        select prop;

            foreach (var p in props)
            {
                if (!p.HasIgnoreColumn(operation))
                {
                    if (instance.Properties.ContainsKey(p.Name))
                    {
                        var value = instance.Properties[p.Name];
                        cmd.Parameters.AddWithValue("@" + p.ColumnName, value ?? DBNull.Value);
                    }
                }
            }
        }
        public void name_of_the_instance_comes_from_the_name_of_the_inner_object_def()
        {
            var def = new ObjectDef(typeof (FakeJsonBehavior));
            var instance = new ObjectDefInstance(def);

            instance.Name.ShouldBe(def.Name);
        }