public void Load() { IBeanFactory factory = new BeanFactory(); factory.Options.ValidateGetColumns = false; var crud = new BeanCrud(new InMemoryStorage(), null, new KeyUtil(), factory); var observer = new TracingObserver(); crud.AddObserver(observer); // Load non-existing bean Assert.Null(crud.Load("any", 123)); Assert.Empty(observer.TraceLog); var bean = crud.Dispense <Tracer>(); bean.Put("p1", "test"); var id = crud.Store(bean); observer.TraceLog = ""; bean = crud.Load <Tracer>(id); Assert.Equal("ad: bl: al:" + id, bean.TraceLog); Assert.Equal("ad: bl: al:" + id, observer.TraceLog); Assert.NotNull(bean["id"]); Assert.Equal(id, bean["id"]); Assert.Equal("test", bean["p1"]); }
public void Store() { IBeanFactory factory = new BeanFactory(); factory.Options.ValidateGetColumns = false; var crud = new BeanCrud(new InMemoryStorage(), null, new KeyUtil(), factory); var observer = new TracingObserver(); crud.AddObserver(observer); var bean = crud.Dispense <Tracer>(); // ----- Insert var id = crud.Store(bean); Assert.Equal(0L, id); Assert.Equal(0L, bean["id"]); Assert.Equal($"ad: bs: bi: ai:{id} as:{id}", bean.TraceLog); Assert.Equal($"ad: bs: bi: ai:{id} as:{id}", observer.TraceLog); // ------ Update bean.Put("p1", "test"); observer.TraceLog = ""; bean.TraceLog = ""; crud.Store(bean); Assert.Equal(0L, bean["id"]); Assert.Equal($"bs:{id} bu:{id} au:{id} as:{id}", bean.TraceLog); Assert.Equal($"bs:{id} bu:{id} au:{id} as:{id}", observer.TraceLog); }
public void RowToBean() { IBeanFactory factory = new BeanFactory(); factory.Options.ValidateGetColumns = false; var crud = new BeanCrud(new InMemoryStorage(), null, null, factory); var observer = new TracingObserver(); crud.AddObserver(observer); var bean = crud.RowToBean <Tracer>(new Dictionary <string, object> { { "s", "hello" } }); Assert.Null(bean["id"]); Assert.Equal("hello", bean["s"]); Assert.Equal("ad: bl: al:", bean.TraceLog); Assert.Equal("ad: bl: al:", observer.TraceLog); observer.TraceLog = ""; bean = crud.RowToBean <Tracer>(new Dictionary <string, object> { { "id", 123 }, { "s", "see you" } }); Assert.Equal(123, bean["id"]); Assert.Equal("see you", bean["s"]); Assert.Equal("ad: bl: al:123", bean.TraceLog); Assert.Equal("ad: bl: al:123", observer.TraceLog); Assert.Null(crud.Load("temp", null)); }
public void Trash() { IBeanFactory factory = new BeanFactory(); factory.Options.ValidateGetColumns = false; var crud = new BeanCrud(new InMemoryStorage(), null, new KeyUtil(), factory); var observer = new TracingObserver(); crud.AddObserver(observer); var bean = crud.Dispense <Tracer>(); observer.TraceLog = bean.TraceLog = ""; crud.Trash(bean); Assert.Empty(bean.TraceLog); Assert.Empty(observer.TraceLog); var id = crud.Store(bean); observer.TraceLog = bean.TraceLog = ""; crud.Trash(bean); Assert.Equal("bt:" + id + " at:" + id, bean.TraceLog); Assert.Equal("bt:" + id + " at:" + id, observer.TraceLog); Assert.Equal(id, bean["id"]); Assert.Null(crud.Load <Tracer>(id)); }
public void ImplicitTransactionsOnStoreAndTrash() { using (var conn = SQLitePortability.CreateConnection()) { conn.Open(); IDatabaseDetails details = new SQLiteDetails(); IDatabaseAccess db = new DatabaseAccess(conn, details); IKeyAccess keys = new KeyUtil(); DatabaseStorage storage = new DatabaseStorage(details, db, keys); IBeanFactory factory = new BeanFactory(); IBeanCrud crud = new BeanCrud(storage, db, keys, factory); storage.EnterFluidMode(); var bean = crud.Dispense <ThrowingBean>(); bean["foo"] = "ok"; var id = crud.Store(bean); bean.Throw = true; bean["foo"] = "fail"; try { crud.Store(bean); } catch { } Assert.Equal("ok", db.Cell <string>(true, "select foo from test where id = {0}", id)); try { crud.Trash(bean); } catch { } Assert.True(db.Cell <int>(true, "select count(*) from test") > 0); } }
public void Dispense_Default() { IBeanFactory factory = new BeanFactory(); var crud = new BeanCrud(null, null, null, factory); var bean = crud.Dispense("test"); Assert.Equal("test", bean.GetKind()); Assert.Equal(typeof(Bean), bean.GetType()); }
public void CreateInheritBeanTest() { Bean b = new Bean(); b.Id = 2; BeanInherit bean = new BeanFactory <Bean, BeanInherit>().CreateBean(b); Assert.AreEqual(2, bean.Id); }
public void CloneBeanTest() { Bean b = new Bean(); b.Id = 2; Bean bean = new BeanFactory <Bean>().CloneBean(b); Assert.IsNotNull(bean.RoleList); Assert.IsNotNull(bean.Child); Assert.AreEqual(2, bean.Id); }
public void CloneBeanRecursiveTest() { BeanRecursive b = new BeanRecursive(); b.Child = new BeanRecursive(); BeanRecursive bean = new BeanFactory <BeanRecursive>().CloneBean(b); Assert.IsNotNull(bean.Child); Assert.IsNotNull(bean.Child.Child); Assert.IsNull(bean.Child.Child.Child); }
public void PreventDirectInstantiation() { IBeanFactory factory = new BeanFactory(); var crud = new BeanCrud(null, null, null, factory); Assert.Throws <InvalidOperationException>(() => { crud.Store(new Tracer()); }); Assert.Throws <InvalidOperationException>(() => { crud.Trash(new Tracer()); }); }
static void RecoveryWebSite() { IKeepIISAliveService KeepIISAliveService = (IKeepIISAliveService)BeanFactory.getObject("KeepIISAliveService"); KeepIISAliveService.KeepAlive(); var config = (RunningConfigModel)BeanFactory.getObject("RunningConfigModel"); if (config != null && config.RunningMode == "ONETIME") { Environment.Exit(0); } }
static void Main() { BeanFactory = new BeanFactory(); #if DEBUG BackService bs = new BackService(BeanFactory); bs.Start(new String[0]); Application.ApplicationExit += (sender, e) => bs.Stop(); #endif Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }
/// <summary> /// Charge dans un objet le bean à partir de sa clef primaire. /// </summary> /// <param name="destination">Objet à charger.</param> /// <param name="primaryKey">Valeur de la clef primaire.</param> public override void Load(T destination, object primaryKey) { if (primaryKey == null) { throw new ArgumentNullException("primaryKey"); } FilterCriteria criteria = new FilterCriteria(); criteria.AddCriteria(_pkName, Expression.Equals, primaryKey); criteria.AddCriteria(_propertyName, Expression.Equals, true); T newObject = GetByCriteria(criteria); BeanFactory <T> factory = new BeanFactory <T>(); factory.CloneBean(newObject, destination); }
public void Dispense_Hooks() { IBeanFactory factory = new BeanFactory(); factory.Options.ValidateGetColumns = false; var crud = new BeanCrud(null, null, null, factory); var observer = new TracingObserver(); crud.AddObserver(observer); var bean = crud.Dispense <Tracer>(); Assert.Equal("tracer", bean.GetKind()); Assert.Equal("ad:", bean.TraceLog); Assert.Equal("ad:", observer.TraceLog); Assert.Same(bean, observer.LastBean); }
public void Dispense_ValidateGetColumns_Test() { IBeanFactory factory = new BeanFactory(); object one; object two; Bean bean; Func <bool, Bean> make = validateColumns => { factory.Options.ValidateGetColumns = false; Bean b = factory.Dispense("test"); Assert.Equal(typeof(Bean), b.GetType()); Assert.Equal(false, b.ValidateGetColumns); b.Put("one", 1); return(b); }; // With ValidateGetColumns switched off bean = make(false); one = (int)bean["one"]; Assert.Equal(1, one); one = bean.Get <int>("one"); Assert.Equal(1, one); two = bean.Get <int>("two"); Assert.Equal(0, two); two = bean["two"]; Assert.Equal(null, two); // With ValidateGetColumns switched on bean = make(true); one = (int)bean["one"]; Assert.Equal(1, one); one = bean.Get <int>("one"); Assert.Equal(1, one); try { two = bean["two"]; } catch (Exception e) { Assert.IsType(typeof(ColumnNotFoundException), e); } try { two = bean.Get <int>("two"); } catch (Exception e) { Assert.IsType(typeof(ColumnNotFoundException), e); } }
public void ConvertsValueToString() { IBeanFactory factory = new BeanFactory(); var crud = new BeanCrud(null, null, null, factory); var bean = crud.Dispense("foo"); bean.Import( new Dictionary <string, object>() { { "null", null }, { "bool", true }, { "sbyte", sbyte.Parse("123") }, { "ssbyte", sbyte.Parse("-123") }, { "byte", byte.Parse("123") }, { "int", 123 }, { "long", 123456789L }, { "double", 123.4567 }, { "decimal", 123.45m }, { "string", "Hello!" }, { "datetime", new DateTime(2000, 1, 1) }, { "guid", Guid.Parse("6161ADAD-72F0-48D1-ACE2-CD98315C9D5B") }, { "byte[]", Encoding.UTF8.GetBytes("Hello!") } } ); AssertExtensions.WithCulture("de-DE", () => { Assert.Equal("#NULL#", bean["null"].FormatValueToString()); Assert.Equal("true", bean["bool"].FormatValueToString()); Assert.Equal("123", bean["sbyte"].FormatValueToString()); Assert.Equal("-123", bean["ssbyte"].FormatValueToString()); Assert.Equal("123", bean["byte"].FormatValueToString()); Assert.Equal("123", bean["int"].FormatValueToString()); Assert.Equal("123456789", bean["long"].FormatValueToString()); Assert.Equal("123,4567", bean["double"].FormatValueToString()); Assert.Equal("123,45", bean["decimal"].FormatValueToString()); Assert.Equal("Hello!", bean["string"].FormatValueToString()); Assert.Equal("2000-01-01T00:00:00", bean["datetime"].FormatValueToString()); Assert.Equal("6161ADAD-72F0-48D1-ACE2-CD98315C9D5B", bean["guid"].FormatValueToString()); Assert.Equal("Hello!", bean["byte[]"].FormatValueToString()); }); }
public void Store() { IBeanFactory factory = new BeanFactory(); factory.Options.ValidateGetColumns = false; var crud = new BeanCrud(new InMemoryStorage(), null, new KeyUtil(), factory); var observer = new TracingObserver(); crud.AddObserver(observer); var bean = crud.Dispense <Tracer>(); var id = crud.Store(bean); Assert.Equal(0L, id); Assert.Equal(0L, bean["id"]); Assert.Equal("ad: bs: as:" + id, bean.TraceLog); Assert.Equal("ad: bs: as:" + id, observer.TraceLog); }
public DatabaseBeanFinderTests() { _conn = SQLitePortability.CreateConnection(); _conn.Open(); IDatabaseDetails details = new SQLiteDetails(); IDatabaseAccess db = new DatabaseAccess(_conn, details); IKeyAccess keys = new KeyUtil(); IStorage storage = new DatabaseStorage(details, db, keys); IBeanFactory factory = new BeanFactory(); IBeanCrud crud = new BeanCrud(storage, db, keys, factory); IBeanFinder finder = new DatabaseBeanFinder(details, db, crud); db.Exec("create table foo(x)"); db.Exec("insert into foo(x) values(1)"); db.Exec("insert into foo(x) values(2)"); db.Exec("insert into foo(x) values(3)"); _db = db; _finder = finder; }
public static void Run(Type applicationType, dynamic settingObject, string[] args) { if (!typeof(IApplication).IsAssignableFrom(applicationType)) { throw new NotSupportedException(); } Settings = settingObject; var beanManager = new BeanManager(); var attrScanner = new AttributeScanner(beanManager); var beanFactory = new BeanFactory(beanManager); beanFactory.CreateAllBeans(); var application = beanManager.GetBean <IApplication>(); application.Run(args); Console.ReadLine(); }
public SpringBeanFactoryProxyMap(BeanFactory beanFactory) { this.beanFactory = beanFactory; }
public BackService(BeanFactory beanFactory) { this.singleton = beanFactory.Get <INotificationServiceExtended>("notificationService"); this.host = new ServiceHost(singleton); this.host.Opened += host_Opened; }
/// <summary> /// Crée une nouvelle entrée pour le type. /// </summary> /// <param name="referenceList">Liste de référence.</param> /// <param name="resourceList">Liste des resources disponible.</param> void IReferenceEntry.Initialize(ICollection referenceList, ICollection <ReferenceResource> resourceList) { BeanDefinition definition = BeanDescriptor.GetDefinition(typeof(T)); BeanPropertyDescriptor primaryKey = definition.PrimaryKey; if (primaryKey == null) { throw new NotSupportedException("Reference type " + typeof(T).FullName + " doesn't have a primary key defined. Use the ColumnAttribute to set the primary key property."); } BeanPropertyDescriptor propertyIsActif = null; if (definition.Properties.Contains(PropertyIsActif)) { propertyIsActif = definition.Properties[PropertyIsActif]; } ICollection <T> initialList = (ICollection <T>)referenceList; ICollection <T> activeList = (propertyIsActif == null) ? initialList : new List <T>(); foreach (T reference in initialList) { _resourceMap.Add(DefaultLocale + primaryKey.GetValue(reference), reference); if (propertyIsActif != null) { bool?isActif = (bool?)propertyIsActif.GetValue(reference); if (isActif.HasValue && isActif.Value) { activeList.Add(reference); } } } _localizedList.Add(DefaultLocale, activeList); if (resourceList == null) { return; } BeanFactory <T> factory = new BeanFactory <T>(); foreach (ReferenceResource resource in resourceList) { T reference; string locale = resource.Locale.Trim(); if (!_localizedList.ContainsKey(locale)) { // Construction des entrées pour la locale. List <T> list = new List <T>(); foreach (T initialReference in initialList) { reference = factory.CloneBean(initialReference); _resourceMap.Add(locale + primaryKey.GetValue(reference), reference); if (propertyIsActif != null) { bool?isActif = (bool?)propertyIsActif.GetValue(reference); if (isActif.HasValue && isActif.Value) { list.Add(reference); } } else { list.Add(reference); } } _localizedList.Add(locale, list); } reference = _resourceMap[locale + resource.Id]; definition.Properties[resource.PropertyName].SetValue(reference, resource.Label); } }