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); }
private IActionBehavior behavior(DiagnosticLevel level) { var objectDef = theNode.As <IContainerModel>().ToObjectDef(level); var instance = new ObjectDefInstance(objectDef); return(theContainer.GetInstance <IActionBehavior>(instance)); }
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>(); }
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>(); }
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); }
public ObjectDefInstanceValidationAttribute(ValidationAttribute attr, ObjectDefInstance mv) : base() { _attr = attr; _mv = mv; }
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); }