Пример #1
0
 public void TestCRUD()
 {
     u1 = new User("Ford", "Prefect", Roles.Employee);
     // insert
     u1.Persist();
     Assert.IsTrue(u1.Id != 0, "No id generated for the User just inserted!");
     // select
     u2 = new User(u1.Id);
     // verify select/insert
     Assert.IsTrue(u2.Id != 0, "The object could not be retrieved from the database!");
     Assert.AreEqual(u1.Id, u2.Id, "The object could not be retrieved from the database!");
     Assert.AreEqual("Ford", u2.FirstName, "The object was not properly retrieved on construction!");
     // update
     u2.FirstName   = "Arthur";
     u2.LastName    = "Dent";
     u2.PrimaryRole = Roles.Customer;
     u2.Persist();
     // verify update
     u1 = new User(u2.Id);
     Assert.AreEqual(u2.FirstName, u1.FirstName, "FirstName not updated!");
     Assert.AreEqual(u2.LastName, u1.LastName, "LastName not updated!");
     Assert.AreEqual(u2.PrimaryRole, u1.PrimaryRole, "PrimaryRole not updated!");
     // delete
     u2.Remove();
     // verify delete by selecting the now non-existing row
     try
     {
         u2 = new User(u1.Id);
         Assert.IsNull(u2, "Object not removed");
     }
     catch (GentleException fe)
     {
         Assert.AreEqual(Error.UnexpectedRowCount, fe.Error, "Unexpected error occurred!");
     }
 }
Пример #2
0
        public void Test_NtoM_WithExtraRelationColumn()
        {
            // create a user with a known id
            u1 = new User("John", "Doe", Roles.Customer);
            u1.Persist();
            Role r1 = fixedRoles[2];

            Assert.IsNotNull(u1, "Test case invalid unless a record with UserId=" + u1.Id + " exists");
            Member m = Member.Retrieve(1);

            // add role
            u1.MemberRoles.Add(r1, m);
            // verify UserRole table
            IList relations = Broker.RetrieveList(typeof(UserRole));

            Assert.AreEqual(1, relations.Count, "No relation created.");
            UserRole ur = relations[0] as UserRole;

            Assert.AreEqual(m.Id, ur.MemberId, "Relation did not save additional type reference.");
            // remove role
            u1.MemberRoles.Remove(r1);
            // verify UserRole table
            relations = Broker.RetrieveList(typeof(UserRole));
            Assert.AreEqual(0, relations.Count, "Relation not removed.");
            u1.Remove();
        }
Пример #3
0
        public void Test_GentleRelation()
        {
            Role r1 = fixedRoles[1];

            // create a user with a known id
            u1 = new User("John", "Doe", Roles.Customer);
            u1.Persist();
            // create 1:n type list
            GentleRelation list = new GentleRelation(typeof(UserRole), u1, typeof(Role));

            Assert.AreEqual(0, list.Count, "Relation table not empty.");
            // verify add
            list.Add(r1);
            list.Add(fixedRoles[2]);
            Assert.AreEqual(2, list.Count, "Wrong number of elements in relation table.");
            // verify read upon create
            list = new GentleRelation(typeof(UserRole), u1, typeof(Role));
            Assert.AreEqual(2, list.Count, "Elements in relation table not automatically retrieved.");
            // verify remove
            list.Remove(r1);
            Assert.AreEqual(1, list.Count, "Relation element was not removed from list.");
            list.Remove(fixedRoles[2]);
            Assert.AreEqual(0, list.Count, "Relation element was not removed from list.");
            list = new GentleRelation(typeof(UserRole), u1, typeof(Role));
            Assert.AreEqual(0, list.Count, "Relation element was not removed from database.");
            u1.Remove();
        }
Пример #4
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();
        }
Пример #5
0
        public void Test_NtoM()
        {
            // create a user with a known id
            u1 = new User("John", "Doe", Roles.Customer);
            u1.Persist();
            Role r1 = fixedRoles[2];

            Assert.IsNotNull(u1, "Test case invalid unless a record with UserId=" + u1.Id + " exists");
            // add role
            u1.Roles.Add(r1);
            // verify UserRole table
            IList relations = Broker.RetrieveList(typeof(UserRole));

            Assert.AreEqual(1, relations.Count, "No relation created.");
            // remove role
            u1.Roles.Remove(r1);
            // verify UserRole table
            relations = Broker.RetrieveList(typeof(UserRole));
            Assert.AreEqual(0, relations.Count, "Relation not removed.");
            u1.Remove();
        }
Пример #6
0
        public void Test_AutoRead()
        {
            // create a user with a known id
            u1 = new User("John", "Doe", Roles.Customer);
            u1.Persist();
            Role r1 = fixedRoles[1];
            Role r2 = fixedRoles[2];

            // add a role (will insert the userrole relation)
            Assert.AreEqual(0, u1.Roles.Count, "Roles list be empty when starting out.");
            u1.Roles.Add(r1);
            Assert.AreEqual(1, u1.Roles.Count, "Roles list must contain an entry after calling Add.");
            u1.Roles.Add(r2);
            Assert.AreEqual(2, u1.Roles.Count, "Roles list must contain an entry after calling Add.");
            // read user 1 again
            u2 = new User(u1.Id);
            Assert.AreEqual(u1.Roles.Count, u2.Roles.Count, "Roles not auto-populated during list creation.");
            // verify UserRole table
            IList relations = Broker.RetrieveList(typeof(UserRole));

            Assert.AreEqual(2, relations.Count, "Relations not added.");
            // add the same role again
            //u2.Roles.Add( r1 );
            //u1 = new User( 1 );
            //Assert.AreEqual( 1, u1.Roles.Count, "Roles was added twice - no duplicate filtering." );
            // remove role
            u1.Roles.Remove(r1);
            u1 = new User(u1.Id);
            Assert.AreEqual(1, u1.Roles.Count, "Role not removed.");
            // remove role
            u1.Roles.Remove(r2);
            u1 = new User(u1.Id);
            Assert.AreEqual(0, u1.Roles.Count, "Role not removed.");
            // verify UserRole table
            relations = Broker.RetrieveList(typeof(UserRole));
            Assert.AreEqual(0, relations.Count, "Relations not removed.");
            u1.Remove();
        }
Пример #7
0
		public void TestCRUD()
		{
			u1 = new User( "Ford", "Prefect", Roles.Employee );
			// insert
			u1.Persist();
			Assert.IsTrue( u1.Id != 0, "No id generated for the User just inserted!" );
			// select
			u2 = new User( u1.Id );
			// verify select/insert
			Assert.IsTrue( u2.Id != 0, "The object could not be retrieved from the database!" );
			Assert.AreEqual( u1.Id, u2.Id, "The object could not be retrieved from the database!" );
			Assert.AreEqual( "Ford", u2.FirstName, "The object was not properly retrieved on construction!" );
			// update
			u2.FirstName = "Arthur";
			u2.LastName = "Dent";
			u2.PrimaryRole = Roles.Customer;
			u2.Persist();
			// verify update
			u1 = new User( u2.Id );
			Assert.AreEqual( u2.FirstName, u1.FirstName, "FirstName not updated!" );
			Assert.AreEqual( u2.LastName, u1.LastName, "LastName not updated!" );
			Assert.AreEqual( u2.PrimaryRole, u1.PrimaryRole, "PrimaryRole not updated!" );
			// delete
			u2.Remove();
			// verify delete by selecting the now non-existing row
			try
			{
				u2 = new User( u1.Id );
				Assert.IsNull( u2, "Object not removed" );
			}
			catch( GentleException fe )
			{
				Assert.AreEqual( Error.UnexpectedRowCount, fe.Error, "Unexpected error occurred!" );
			}
		}
Пример #8
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();
		}
Пример #9
0
		public void Test_AutoRead()
		{
			// create a user with a known id
			u1 = new User( "John", "Doe", Roles.Customer );
			u1.Persist();
			Role r1 = fixedRoles[ 1 ];
			Role r2 = fixedRoles[ 2 ];
			// add a role (will insert the userrole relation)
			Assert.AreEqual( 0, u1.Roles.Count, "Roles list be empty when starting out." );
			u1.Roles.Add( r1 );
			Assert.AreEqual( 1, u1.Roles.Count, "Roles list must contain an entry after calling Add." );
			u1.Roles.Add( r2 );
			Assert.AreEqual( 2, u1.Roles.Count, "Roles list must contain an entry after calling Add." );
			// read user 1 again
			u2 = new User( u1.Id );
			Assert.AreEqual( u1.Roles.Count, u2.Roles.Count, "Roles not auto-populated during list creation." );
			// verify UserRole table
			IList relations = Broker.RetrieveList( typeof(UserRole) );
			Assert.AreEqual( 2, relations.Count, "Relations not added." );
			// add the same role again
			//u2.Roles.Add( r1 );
			//u1 = new User( 1 );
			//Assert.AreEqual( 1, u1.Roles.Count, "Roles was added twice - no duplicate filtering." );
			// remove role
			u1.Roles.Remove( r1 );
			u1 = new User( u1.Id );
			Assert.AreEqual( 1, u1.Roles.Count, "Role not removed." );
			// remove role
			u1.Roles.Remove( r2 );
			u1 = new User( u1.Id );
			Assert.AreEqual( 0, u1.Roles.Count, "Role not removed." );
			// verify UserRole table
			relations = Broker.RetrieveList( typeof(UserRole) );
			Assert.AreEqual( 0, relations.Count, "Relations not removed." );
			u1.Remove();
		}
Пример #10
0
		public void Test_NtoM_WithExtraRelationColumn()
		{
			// create a user with a known id
			u1 = new User( "John", "Doe", Roles.Customer );
			u1.Persist();
			Role r1 = fixedRoles[ 2 ];
			Assert.IsNotNull( u1, "Test case invalid unless a record with UserId=" + u1.Id + " exists" );
			Member m = Member.Retrieve( 1 );
			// add role
			u1.MemberRoles.Add( r1, m );
			// verify UserRole table
			IList relations = Broker.RetrieveList( typeof(UserRole) );
			Assert.AreEqual( 1, relations.Count, "No relation created." );
			UserRole ur = relations[ 0 ] as UserRole;
			Assert.AreEqual( m.Id, ur.MemberId, "Relation did not save additional type reference." );
			// remove role
			u1.MemberRoles.Remove( r1 );
			// verify UserRole table
			relations = Broker.RetrieveList( typeof(UserRole) );
			Assert.AreEqual( 0, relations.Count, "Relation not removed." );
			u1.Remove();
		}
Пример #11
0
		public void Test_NtoM()
		{
			// create a user with a known id
			u1 = new User( "John", "Doe", Roles.Customer );
			u1.Persist();
			Role r1 = fixedRoles[ 2 ];
			Assert.IsNotNull( u1, "Test case invalid unless a record with UserId=" + u1.Id + " exists" );
			// add role
			u1.Roles.Add( r1 );
			// verify UserRole table
			IList relations = Broker.RetrieveList( typeof(UserRole) );
			Assert.AreEqual( 1, relations.Count, "No relation created." );
			// remove role
			u1.Roles.Remove( r1 );
			// verify UserRole table
			relations = Broker.RetrieveList( typeof(UserRole) );
			Assert.AreEqual( 0, relations.Count, "Relation not removed." );
			u1.Remove();
		}
Пример #12
0
		public void Test_GentleRelation()
		{
			Role r1 = fixedRoles[ 1 ];
			// create a user with a known id
			u1 = new User( "John", "Doe", Roles.Customer );
			u1.Persist();
			// create 1:n type list
			GentleRelation list = new GentleRelation( typeof(UserRole), u1, typeof(Role) );
			Assert.AreEqual( 0, list.Count, "Relation table not empty." );
			// verify add
			list.Add( r1 );
			list.Add( fixedRoles[ 2 ] );
			Assert.AreEqual( 2, list.Count, "Wrong number of elements in relation table." );
			// verify read upon create
			list = new GentleRelation( typeof(UserRole), u1, typeof(Role) );
			Assert.AreEqual( 2, list.Count, "Elements in relation table not automatically retrieved." );
			// verify remove
			list.Remove( r1 );
			Assert.AreEqual( 1, list.Count, "Relation element was not removed from list." );
			list.Remove( fixedRoles[ 2 ] );
			Assert.AreEqual( 0, list.Count, "Relation element was not removed from list." );
			list = new GentleRelation( typeof(UserRole), u1, typeof(Role) );
			Assert.AreEqual( 0, list.Count, "Relation element was not removed from database." );
			u1.Remove();
		}