public void Init() { // disable query caching GentleSettings.SkipQueryExecution = false; // clean any existing entries SqlBuilder sb = new SqlBuilder( StatementType.Delete, typeof(UserRole) ); Broker.Execute( sb.GetStatement() ); // clean out roles table sb = new SqlBuilder( StatementType.Delete, typeof(Role) ); Broker.Execute( sb.GetStatement() ); // populate table with known roles fixedRoles = new Role[Enum.GetNames( typeof(Roles) ).Length]; int index = 0; foreach( string roleName in Enum.GetNames( typeof(Roles) ) ) { Role role = new Role( (Roles) Enum.Parse( typeof(Roles), roleName, false ) ); role.Persist(); fixedRoles[ index++ ] = role; } }
public void Test_GentleListWithCaching() { // enable all caching GentleSettings.CacheObjects = true; GentleSettings.CacheStatements = true; GentleSettings.SkipQueryExecution = true; CacheManager.Clear(); // create a user with a known id u1 = new User( "John", "Doe", Roles.Customer ); u1.Persist(); // create n:m type list GentleList list = new GentleList( typeof(Role), u1, typeof(UserRole) ); Assert.AreEqual( 0, list.Count, "Test requires that tables are initially empty." ); // verify add Role r1 = new Role( 0, "Role 1" ); r1.Persist(); list.Add( r1 ); Assert.AreEqual( 1, list.Count, "No element in relation table." ); Role r2 = new Role( 0, "Role 2" ); r2.Persist(); list.Add( r2 ); Assert.AreEqual( 2, list.Count, "Wrong number of elements in relation table." ); // verify read upon create list = new GentleList( typeof(Role), u1, typeof(UserRole) ); Assert.AreEqual( 2, list.Count, "Elements in relation table were not automatically retrieved." ); // verify remove list.Remove( r1 ); Assert.AreEqual( 1, list.Count, "Element was not removed from list." ); // verify add after remove Role r3 = new Role( 0, "Role 3" ); r3.Persist(); list.Add( r3 ); Assert.AreEqual( 2, list.Count, "Wrong number of elements in relation table." ); // remove remaining elements list.Remove( r2 ); list.Remove( r3 ); Assert.AreEqual( 0, list.Count, "Relation element was not removed from list." ); list = new GentleList( typeof(UserRole), u1 ); Assert.AreEqual( 0, list.Count, "Relation element was not removed from database." ); u1.Remove(); }