Beispiel #1
0
		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;
			}
		}
Beispiel #2
0
		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();
		}