예제 #1
0
		public void UT_Constraints() {
			string _testid = DateTime.Now.Ticks.ToString();
			bool _constraint;
			for (int c = 0; c < UT0__utils.DBConnections.Length; c++) {
//Console.WriteLine("UT_Constraints: {0}", DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c]).ToString());

				UT0__utils.DBConnections[c].Open();
				UT0__utils.DBConnections[c].Transaction.Begin();
				DO_User _user = new DO_User(UT0__utils.DBConnections[c]);

				_user.Fields.Login = _testid;
				_user.Fields.Password = _testid;
				_user.insObject(false, out _constraint);
				Assert.IsFalse(_constraint, "there should be no constraint problems");

				_user.clrObject();
				_user.Fields.Login = _testid;
				_user.Fields.Password = _testid;
				_user.insObject(false, out _constraint);
				Assert.IsTrue(_constraint, "constraint problems expected and not found");

				_user.Dispose(); _user = null;
				UT0__utils.DBConnections[c].Transaction.Rollback();
				UT0__utils.DBConnections[c].Transaction.Terminate();
				UT0__utils.DBConnections[c].Close();
			}
		}
		public HowTo_UseTransactions_inDOs() {
			string _testid = DateTime.Now.Ticks.ToString();
			bool _constraint;
			long _iduser;
			long _idgroup;


			DO_User _user = new DO_User();

			// before beginning a transaction we need to open the connection
			_user.Connection.Open();

			// beginning transaction
			_user.Connection.Transaction.Begin();

			// performing some operations on User Data Object
			_user.Fields.Login = _testid;
			_user.Fields.Password = _testid;
			_iduser = _user.insObject(true, out _constraint);
			// handling constraint code should be added here

			// rollback transaction, we don't need such data in db, this is just an how to sample
			_user.Connection.Transaction.Rollback();

			// terminate transaction
			_user.Connection.Transaction.Terminate();

			// closing connection
			_user.Connection.Close();

			_user.Dispose(); _user = null;
		}
		public HowTo_UseTransactions_betweenDOs_operations() {
			string _testid = DateTime.Now.Ticks.ToString();
			bool _constraint;
			long _iduser;
			long _idgroup;

			// we need a shared connection between Data Objects
			DBConnection _con = DO__utils.DBConnection_createInstance(
				DO__utils.DBServerType, 
				DO__utils.DBConnectionstring, 
				string.Empty
			);

			// before beginning a transaction we need to open the connection
			_con.Open();

			// beginning transaction
			_con.Transaction.Begin();

			// sharing connection with User Data Object
			DO_User _user = new DO_User(_con);
			// performing some operations on User Data Object
			_user.Fields.Login = _testid;
			_user.Fields.Password = _testid;
			_iduser = _user.insObject(true, out _constraint);
			// handling constraint code should be added here
			_user.Dispose(); _user = null;

			// sharing connection with Group Data Object
			DO_Group _group = new DO_Group(_con);
			// performing some operations on User Data Object
			_group.Fields.Name = _testid;
			_idgroup = _group.insObject(true);
			_group.Dispose(); _group = null;

			// sharing connection with Group Data Object
			DO_UserGroup _usergroup = new DO_UserGroup(_con);
			// performing some operations on User Data Object
			_usergroup.Fields.IDGroup = _idgroup;
			_usergroup.Fields.IDUser = _iduser;
			_usergroup.Fields.Relationdate = DateTime.Now;
			_usergroup.Fields.Defaultrelation = false;
			_usergroup.setObject(false);
			_usergroup.Dispose(); _usergroup = null;

			// rollback transaction, we don't need such data in db, this is just an how to sample
			_con.Transaction.Rollback();

			// terminate transaction
			_con.Transaction.Terminate();

			// closing connection
			_con.Close();

			_con.Dispose(); _con = null;
		}
예제 #4
0
파일: BDO_User.cs 프로젝트: katshann/ogen
		public long insObject(
			SO_User user_in, 
			bool selectIdentity_in, 
			string login_in, 
			out bool constraintExist_out
		) {
			long _iduser;
			DO_User _user = new DO_User();
			_user.Fields = (SO_User)user_in;
			_iduser = _user.insObject(
				selectIdentity_in,
				out constraintExist_out
			);
			_user.Dispose();

			return _iduser;
		}
예제 #5
0
파일: MainClass.cs 프로젝트: katshann/ogen
		static void Main(string[] args) {
			IBO_Authentication _authentication;
			IBO_User _user;
			string _login;

			for (int _provider = 0; _provider < 3; _provider++) {
				switch (_provider) {
					case 0:
						Console.WriteLine("--- remoting...");
						_authentication
							= new RC_Authentication(
								"tcp://127.0.0.1:8085/OGen.NTier.UTs.distributedlayer.remoting.server.RS_Authentication.remoting"
								//"http://127.0.0.1:8085/OGen.NTier.UTs.distributedlayer.remoting.server.RS_Authentication.soap"
							);

						_user
							= new RC_User(
								"tcp://127.0.0.1:8085/OGen.NTier.UTs.distributedlayer.remoting.server.RS_User.remoting"
								//"http://127.0.0.1:8085/OGen.NTier.UTs.distributedlayer.remoting.server.RS_User.soap"
							);
						break;
					case 1:
						Console.WriteLine("--- webservices...");
						_authentication
							= new WC_Authentication.WC_Authentication(
								"http://127.0.0.1:2937/WS_Authentication.asmx"
							);

						_user
							= new WC_User.WC_User(
								"http://127.0.0.1:2937/WS_User.asmx"
							);
						break;
					default:
						Console.WriteLine("--- direct assembly...");
						_authentication
							= new BC_Authentication(
							);

						_user
							= new BC_User(
							);
						break;
				}

				Console.WriteLine(
					"authentication string: {0}\n", 
					_login = _authentication.Login(
						"fmonteiro", 
						"passpub"
					)
				);

				OGen.NTier.UTs.lib.datalayer.proxy.ISO_User _so_user 
					= new OGen.NTier.UTs.lib.datalayer.proxy.SO_User(
						0L,
						string.Format(
							"login-{0}", 
							Guid.NewGuid().ToString()
						),
						"password",
						0
					);
				_so_user.SomeNullValue_isNull = true;
				Console.WriteLine(
					"IDUser: {0}; Login: {1}; Password: {2}; SomeNullValue: {3} (is null: {4})",
					_so_user.IDUser,
					_so_user.Login,
					_so_user.Password,
					_so_user.SomeNullValue, 
					_so_user.SomeNullValue_isNull
				);

				long _iduser;
				bool _constraintExists;
				Console.WriteLine(
					"IDUser: {0}; Constraint Exists: {1}",
					_iduser =_user.insObject(
						(SO_User)_so_user,
						true, 
						_login, 
						out _constraintExists
					),
					_constraintExists
				);

				bool _exists;
				_so_user = _user.getObject(
					_iduser, 
					_login, 
					out _exists
				);
				Console.WriteLine(
					"Exists: {5}; IDUser: {0}; Login: {1}; Password: {2}; SomeNullValue: {3} (is null: {4})",
					_so_user.IDUser,
					_so_user.Login,
					_so_user.Password,
					_so_user.SomeNullValue,
					_so_user.SomeNullValue_isNull,
					_exists
				);

				long _recordLength;
				SO_User[] _users = _user.Record_Open_byGroup(
					3L,
					1,
					4,
					_login, 
					out _recordLength
				);
				Console.WriteLine(
					"Record Length: {0}",
					_recordLength
				);
				for (int i = 0; i < _users.Length; i++) {
					Console.WriteLine(
						//"IDUser: {0}; Login: {1}",
						"IDUser: {0}; Login: {1}; Password: {2}; SomeNullValue: {3} (is null: {4})",
						_users[i].IDUser,
						_users[i].Login, 
						_users[i].Password, 
						_users[i].SomeNullValue, 
						_users[i].SomeNullValue_isNull
					);
				}

				_authentication.Logout();
			}
			return;
















			//OGen.NTier.UTs.lib.businesslayer-2.0
			Assembly _assembly = Assembly.Load(
				#if NET_1_1
				"OGen.NTier.UTs.lib.businesslayer-1.1"
				#elif NET_2_0
				"OGen.NTier.UTs.lib.businesslayer-2.0"
				#endif
			);
			if (_assembly != null) {
				Type[] _types = _assembly.GetTypes();
				for (int t = 0; t < _types.Length; t++) {
					Type _type = (Type)_types[t];

					object[] _attibutes = _type.GetCustomAttributes(
						typeof(BOClassAttribute),
						true//false
					);
					if (
						(_attibutes.Length > 0)
						&&
						(_type.Name.IndexOf("BO0_") != 0)
						&&
						(_type.Name.IndexOf("BBO0_") != 0)
					) {
						Console.Write("{0};  ", _type.Name);

						for (int c = 0; c < _attibutes.Length; c++) {
							BOClassAttribute _attribute 
								= (BOClassAttribute)_attibutes[c];
Console.WriteLine(
	"name:{0};",
	_attribute.Name
);

							MethodInfo[] _methods = _type.GetMethods(
								BindingFlags.Public |
								BindingFlags.Instance
							);
							for (int m = 0; m < _methods.Length; m++) {
								if (Attribute.IsDefined(
									_methods[m],
									typeof(BOMethodAttribute)
								)) {
									Attribute[] _attributes = Attribute.GetCustomAttributes(
										_methods[m],
										typeof(BOMethodAttribute),
										true
									);

									for (int a = 0; a < _attributes.Length; a++) {
										//if (_attributes[a].GetType() == typeof(BOMethodAttribute)) {
										BOMethodAttribute _propertyattribute
											= (BOMethodAttribute)_attributes[a];
Console.WriteLine(
	"\tname:{0}; distribute:{1};",
	_propertyattribute.Name,
	_propertyattribute.Distribute
);
										//}
									}
									Console.WriteLine(
										"\t.{0}:{1}.{2}(",
										_methods[m].Name, 
										_methods[m].ReturnType.Namespace,
										_methods[m].ReturnType.Name
									);
									ParameterInfo[] _parameterinfo = _methods[m].GetParameters();
									for (int p = 0; p < _parameterinfo.Length; p++) {
Console.WriteLine(
	"\t\tname:{0}; type:{1}; isOut:{2}; isByRef:{3}; isEnum:{4}; isClass:{5}; isValueType:{6}", 
	_parameterinfo[p].Name, 
	_parameterinfo[p].ParameterType, 
	_parameterinfo[p].IsOut,
	_parameterinfo[p].ParameterType.IsByRef,
	_parameterinfo[p].ParameterType.IsEnum, 
	_parameterinfo[p].ParameterType.IsClass, 
	_parameterinfo[p].ParameterType.IsValueType
);
									}
									Console.WriteLine("\t)");
								}
							}
							Console.WriteLine();
						}
					}
				}
			}
			return;

			//DO_UserGroup _usergroup_test = new DO_UserGroup(
			//    //new DBConnection(
			//    //    DBServerTypes.SQLServer,
			//    //    "server=127.0.0.1;uid=sa;pwd=passpub;database=OGen-NTier_UTs;"
			//    //)
			//);
			//_usergroup_test.IDGroup = 1;
			//_usergroup_test.IDUser = 1;
			//_usergroup_test.Relationdate_isNull = true;
			//_usergroup_test.Defaultrelation_isNull = true;
			//_usergroup_test.setObject(true);

			//OGen.NTier.UTs.lib.datalayer.UTs.UT__utils _ut_utils
			//    = new OGen.NTier.UTs.lib.datalayer.UTs.UT__utils();
			//_ut_utils.TestFixtureSetUp();
			//_ut_utils.UT_Check_DataObjects_integrity();
			//return;

			//OGen.NTier.UTs.lib.datalayer.UTs.UT_User _ut_user 
			//    = new OGen.NTier.UTs.lib.datalayer.UTs.UT_User();
			//_ut_user.TestFixtureSetUp();
			//_ut_user.UT_hasChanges();
			//return;


			//OGen.NTier.UTs.lib.datalayer.UTs.UT_UserGroup
			//	_ut_usergroup = new OGen.NTier.UTs.lib.datalayer.UTs.UT_UserGroup();
			//_ut_usergroup.TestFixtureSetUp();
			//_ut_usergroup.UT_bugPostgreSQL_noFunctionMatchesTheGivenNameAndArgumentTypes();
			////_ut_usergroup.UT_NullableFields();
			//return;


			//DO_Config _config_test = new DO_Config();
			//_config_test.Connection.Open();
			//_config_test.Connection.Transaction.Begin();
			//_config_test.Fields.Name = "test";
			//_config_test.Fields.Description = "test";
			//_config_test.Fields.Config = "test";
			//_config_test.Fields.Type = 1;
			//try {
			//	_config_test.setObject(true);
			//	Console.WriteLine("ok");
			//} catch {
			//	Console.WriteLine("ko");
			//}
			//_config_test.Connection.Transaction.Rollback();
			//_config_test.Connection.Transaction.Terminate();
			//_config_test.Connection.Close();
			//_config_test.Dispose();
			//return;
			



			const int _cycles = 50;
			DBConnection[] _cons = new DBConnection[] {
				#region new DBConnection(DBServerTypes.SQLServer, ...), 
				DBConnectionsupport.CreateInstance(
				    DBServerTypes.SQLServer,
					
				    DBUtilssupport.GetInstance(DBServerTypes.SQLServer).ConnectionString.Build(
				        "127.0.0.1", 
				        "sa", 
				        "passpub", 
				        "OGen-NTier_UTs"
				    )
				),  
				#endregion
				#region new DBConnection(DBServerTypes.PostgreSQL, ...)
				DBConnectionsupport.CreateInstance(
					DBServerTypes.PostgreSQL,
					DBUtilssupport.GetInstance(DBServerTypes.PostgreSQL).ConnectionString.Build(
						"127.0.0.1", 
						"postgres", 
						"passpub", 
						"OGen-NTier_UTs"
					)
				)
				#endregion
				//#region new DBConnection(DBServerTypes.MySQL, ...)
				//, DBConnectionsupport.CreateInstance(
				//    DBServerTypes.MySQL,
				//    DBUtilssupport.GetInstance(DBServerTypes.MySQL).ConnectionString.Build(
				//        "127.0.0.1", 
				//        "root", 
				//        "passpub", 
				//        "OGen-NTier_UTs"
				//    )
				//)
				//#endregion
			};

			long _conter = 0L;
			for (int _compiled = 0; _compiled < 2; _compiled++) {
				for (int _con = 0; _con < _cons.Length; _con++) {
					_cons[_con].Open();
					_cons[_con].Transaction.Begin();
					for (int _cached = 0; _cached < 2; _cached++) {
						DO_Config _config = new DO_Config(_cons[_con]);
						#region _config.setObject();
						_conter = DateTime.Now.Ticks;

						for (int c = 0; c < _cycles; c++) {
							_config.Fields.Name = c.ToString();
							_config.Fields.Config = "DELETE THIS, IT IS A TEST";
							_config.Fields.Type = 2;
							_config.setObject(true);
						}

						Console.WriteLine(
							"setObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						#region _config.Record.Open_...(false);
						_conter = DateTime.Now.Ticks;

						_config.Record.Open_all();
						while (_config.Record.Read()) ;
						_config.Record.Close();

						Console.WriteLine(
							"Record.Open()    \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						#region _config.delObject();
						_conter = DateTime.Now.Ticks;

						_config.Record.Open_all();
						while (_config.Record.Read()) {
							if (_config.Fields.Config == "DELETE THIS, IT IS A TEST") {
								_config.delObject();
							}
						}
						_config.Record.Close();

						Console.WriteLine(
							"delObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						#region _config.getObject();
						_conter = DateTime.Now.Ticks;

						_config.Fields.Name = "SomeIntConfig";
						_config.Fields.Config = "1245";
						_config.Fields.Type = 4;
						_config.setObject(true);

						for (int c = 0; c < _cycles; c++) {
							_config.getObject("SomeIntConfig");
						}

						Console.WriteLine(
							"getObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						_config.Dispose(); _config = null;
						//---
						DO_User _do_user = new DO_User(_cons[_con]);

						#region _do_user.insObject();
						_conter = DateTime.Now.Ticks;

						for (int c = 0; c < _cycles; c++) {
							bool _constraint;
							_do_user.Fields.Login = c.ToString();
							_do_user.Fields.Password = "******";
							_do_user.insObject(true, out _constraint);
						}

						_do_user.Record.Open_all();
						while (_do_user.Record.Read()) {
							if (_do_user.Fields.Password == "DELETE THIS, IT IS A TEST") {
								_do_user.delObject();
							}
						}
						_do_user.Record.Close();

						Console.WriteLine(
							"insObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion

						_conter = DateTime.Now.Ticks;
						for (int c = 0; c < _cycles; c++) {
							if (!_do_user.isObject_byLogin("fmonteiro")) {
								bool _constraint;
								_do_user.Fields.Login = "******";
								_do_user.Fields.Password = "******";
								_do_user.insObject(true, out _constraint);
							}
							_do_user.getObject_byLogin("fmonteiro");
						}
						Console.WriteLine(
							"getObject_by()   \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);

						_do_user.Dispose(); _do_user = null;
					}
					_cons[_con].Transaction.Rollback();
					_cons[_con].Transaction.Terminate();
					_cons[_con].Close();
				}
			}
			Console.WriteLine("Press any key to continue...");
			Console.ReadLine();
		}
예제 #6
0
		public void UT_NullableFields() {
			bool _contraint;
			long _iduser;
			long _idgroup;

			for (int c = 0; c < UT0__utils.DBConnections.Length; c++) {
//Console.WriteLine("UT_NullableFields: {0}", DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c]).ToString());

				UT0__utils.DBConnections[c].Open();
				UT0__utils.DBConnections[c].Transaction.Begin();

				#region _iduser = new DO_User(UT0__utils.DBConnections[c]).insObject(true);
				DO_User _user = new DO_User(UT0__utils.DBConnections[c]);
				_user.Fields.Login = testid_;
				_user.Fields.Password = testid_;
				_iduser = _user.insObject(true, out _contraint);
				_user.Dispose(); _user = null;
				#endregion
				#region _idgroup = new DO_Group(UT0__utils.DBConnections[c]).insObject(true);
				DO_Group _group = new DO_Group(UT0__utils.DBConnections[c]);
				_group.Fields.Name = testid_;
				_idgroup = _group.insObject(true);
				_group.Dispose(); _group = null;
				#endregion

				DO_UserGroup _usergroup = new DO_UserGroup(UT0__utils.DBConnections[c]);
				_usergroup.Fields.IDUser = _iduser;
				_usergroup.Fields.IDGroup = _idgroup;
				_usergroup.Fields.Relationdate_isNull = true;
				_usergroup.Fields.Defaultrelation_isNull = true;
				_usergroup.setObject(true);

				#region test1...
				_usergroup.clrObject();
				_usergroup.getObject(_iduser, _idgroup);
				Assert.IsTrue(_usergroup.Fields.Relationdate_isNull, "DO_UserGroup.Relationdate expected to be nullable ({0})", DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c]));
				Assert.IsTrue(_usergroup.Fields.Defaultrelation_isNull, "DO_UserGroup.Defaultrelation expected to be nullable ({0})", DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c]));
				#endregion
				#region test2...
				_usergroup.Record.Open_byUser_Defaultrelation(
					_iduser,
					null
				);
				while (_usergroup.Record.Read()) {
					Assert.IsTrue(_usergroup.Fields.Relationdate_isNull, "DO_UserGroup.Relationdate expected to be nullable ({0})", DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c]));
					Assert.IsTrue(_usergroup.Fields.Defaultrelation_isNull, "DO_UserGroup.Defaultrelation expected to be nullable ({0})", DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c]));
				}
				_usergroup.Record.Close();
				#endregion
				#region test3...
				Assert.IsTrue(
					_usergroup.Record.hasObject_byUser_Defaultrelation(
						_iduser,
						_idgroup,
						_iduser,
						null
					), 
					"test error: 1 ({0})", 
					DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c])
				);
				Assert.AreEqual(
					1L,
					_usergroup.Record.Count_byUser_Defaultrelation(
						_iduser,
						null
					), 
					"test error: 2 ({0})", 
					DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c])
				);
				#endregion
				#region test4...
				DateTime _now = DateTime.Now;
				_usergroup.Record.Update_SomeUpdateTest_byUser_Defaultrelation(
					_iduser,
					null,
					_now
				);

				Assert.IsTrue(
					_usergroup.Record.hasObject_byUser_Defaultrelation(
						_iduser,
						_idgroup,
						_iduser,
						_now
					), 
					"test error: 3 ({0})", 
					DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c])
				);
				Assert.AreEqual(
					1L,
					_usergroup.Record.Count_byUser_Defaultrelation(
						_iduser,
						_now
					), 
					"test error: 4 ({0})", 
					DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c])
				);
				#endregion

				_usergroup.Dispose(); _usergroup = null;

				UT0__utils.DBConnections[c].Transaction.Rollback();
				UT0__utils.DBConnections[c].Transaction.Terminate();
				UT0__utils.DBConnections[c].Close();
			}
		}
예제 #7
0
		public void UT_bugPostgreSQL_noFunctionMatchesTheGivenNameAndArgumentTypes() {
			bool _contraint;
			long _iduser;
			long _idgroup;

			for (int c = 0; c < UT0__utils.DBConnections.Length; c++) {
//Console.WriteLine("UT_NullableFields: {0}", DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c]).ToString());

				UT0__utils.DBConnections[c].Open();
				UT0__utils.DBConnections[c].Transaction.Begin();

				#region _iduser = new DO_User(UT0__utils.DBConnections[c]).insObject(true);
				DO_User _user = new DO_User(UT0__utils.DBConnections[c]);
				_user.Fields.Login = testid_;
				_user.Fields.Password = testid_;
				_iduser = _user.insObject(true, out _contraint);
				_user.Dispose(); _user = null;
				#endregion
				#region _idgroup = new DO_Group(UT0__utils.DBConnections[c]).insObject(true);
				DO_Group _group = new DO_Group(UT0__utils.DBConnections[c]);
				_group.Fields.Name = testid_;
				_idgroup = _group.insObject(true);
				_group.Dispose(); _group = null;
				#endregion

				DO_UserGroup _usergroup = new DO_UserGroup(UT0__utils.DBConnections[c]);
				_usergroup.Fields.IDUser = _iduser;
				_usergroup.Fields.IDGroup = _idgroup;
				_usergroup.Fields.Relationdate_isNull = true;
				_usergroup.Fields.Defaultrelation_isNull = true;
				try {
					_usergroup.setObject(true);
				} catch {
					Assert.Fail(
						"test error: 1 ({0})",
						DBConnectionsupport.GetDBServerType(UT0__utils.DBConnections[c])
					);
				}
				_usergroup.Dispose(); _usergroup = null;

				UT0__utils.DBConnections[c].Transaction.Rollback();
				UT0__utils.DBConnections[c].Transaction.Terminate();
				UT0__utils.DBConnections[c].Close();
			}
		}
예제 #8
0
		public void UT_hasChanges() {
			string _testid = DateTime.Now.Ticks.ToString();
			bool _constraint;
			long _iduser;

			DO_User _user = new DO_User();
			_user.Connection.Open();
			_user.Connection.Transaction.Begin();

			Assert.IsFalse(_user.Fields.hasChanges, "unexpected changes, object just instantiated and no changes have been made");
			_user.Fields.Login = _testid;
			_user.Fields.Password = _testid;
			Assert.IsTrue(_user.Fields.hasChanges, "expected changes, changes have been made over object");
			_iduser = _user.insObject(true, out _constraint);
			Assert.IsFalse(_user.Fields.hasChanges, "unexpected changes, object state commited (insert) over data base");
			_user.Fields.Login = _testid;
			_user.Fields.Password = _testid;
			Assert.IsFalse(_user.Fields.hasChanges, "unexpected changes, no real changes have been made");
			_user.Fields.Password = string.Empty;
			Assert.IsTrue(_user.Fields.hasChanges, "expected changes, real changes have been made");
			_user.updObject(false, out _constraint);
			Assert.IsFalse(_user.Fields.hasChanges, "unexpected changes, object state commited (update) over data base");
			_user.clrObject();
			Assert.IsTrue(_user.Fields.hasChanges, "expected changes, object state cleared");
			_user.getObject_byLogin(_testid);
			Assert.IsFalse(_user.Fields.hasChanges, "unexpected changes, object state sinchronized (select) with data base");
			_user.delObject();
			Assert.IsTrue(_user.Fields.hasChanges, "expected changes, object erased (delete on data base)");
			
			_user.Connection.Transaction.Rollback();
			_user.Connection.Transaction.Terminate();
			_user.Connection.Close();
			_user.Dispose(); _user = null;
		}
예제 #9
0
파일: MainClass.cs 프로젝트: katshann/ogen
		static void Main(string[] args) {
			//DO_UserGroup _usergroup_test = new DO_UserGroup(
			//    //new DBConnection(
			//    //    DBServerTypes.SQLServer,
			//    //    "server=127.0.0.1;uid=sa;pwd=passpub;database=OGen-NTier_UTs;"
			//    //)
			//);
			//_usergroup_test.IDGroup = 1;
			//_usergroup_test.IDUser = 1;
			//_usergroup_test.Relationdate_isNull = true;
			//_usergroup_test.Defaultrelation_isNull = true;
			//_usergroup_test.setObject(true);

			//OGen.NTier.UTs.lib.datalayer.UTs.UT__utils _ut_utils
			//    = new OGen.NTier.UTs.lib.datalayer.UTs.UT__utils();
			//_ut_utils.TestFixtureSetUp();
			//_ut_utils.UT_Check_DataObjects_integrity();
			//return;

			//OGen.NTier.UTs.lib.datalayer.UTs.UT_User _ut_user 
			//    = new OGen.NTier.UTs.lib.datalayer.UTs.UT_User();
			//_ut_user.TestFixtureSetUp();
			//_ut_user.UT_hasChanges();
			//return;


			//OGen.NTier.UTs.lib.datalayer.UTs.UT_UserGroup
			//	_ut_usergroup = new OGen.NTier.UTs.lib.datalayer.UTs.UT_UserGroup();
			//_ut_usergroup.TestFixtureSetUp();
			//_ut_usergroup.UT_bugPostgreSQL_noFunctionMatchesTheGivenNameAndArgumentTypes();
			////_ut_usergroup.UT_NullableFields();
			//return;


			//DO_Config _config_test = new DO_Config();
			//_config_test.Connection.Open();
			//_config_test.Connection.Transaction.Begin();
			//_config_test.Fields.Name = "test";
			//_config_test.Fields.Description = "test";
			//_config_test.Fields.Config = "test";
			//_config_test.Fields.Type = 1;
			//try {
			//	_config_test.setObject(true);
			//	Console.WriteLine("ok");
			//} catch {
			//	Console.WriteLine("ko");
			//}
			//_config_test.Connection.Transaction.Rollback();
			//_config_test.Connection.Transaction.Terminate();
			//_config_test.Connection.Close();
			//_config_test.Dispose();
			//return;
			



			const int _cycles = 50;
			DBConnection[] _cons = new DBConnection[] {
				#region new DBConnection(DBServerTypes.SQLServer, ...), 
				DBConnectionsupport.CreateInstance(
					DBServerTypes.SQLServer,
					
					DBUtilssupport.GetInstance(DBServerTypes.SQLServer).ConnectionString.Build(
						"127.0.0.1", 
						"sa", 
						"passpub", 
						"OGen-NTier_UTs"
					)
				), 
				#endregion
				#region new DBConnection(DBServerTypes.PostgreSQL, ...)
				DBConnectionsupport.CreateInstance(
					DBServerTypes.PostgreSQL,
					DBUtilssupport.GetInstance(DBServerTypes.PostgreSQL).ConnectionString.Build(
						"127.0.0.1", 
						"postgres", 
						"passpub", 
						"OGen-NTier_UTs"
					)
				)
				#endregion
			};

			long _conter = 0L;
			for (int _compiled = 0; _compiled < 2; _compiled++) {
				for (int _con = 0; _con < _cons.Length; _con++) {
					_cons[_con].Open();
					_cons[_con].Transaction.Begin();
					for (int _cached = 0; _cached < 2; _cached++) {
						DO_Config _config = new DO_Config(_cons[_con]);
						#region _config.setObject();
						_conter = DateTime.Now.Ticks;

						for (int c = 0; c < _cycles; c++) {
							_config.Fields.Name = c.ToString();
							_config.Fields.Config = "DELETE THIS, IT IS A TEST";
							_config.Fields.Type = 2;
							_config.setObject(true);
						}

						Console.WriteLine(
							"setObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						#region _config.Record.Open_...(false);
						_conter = DateTime.Now.Ticks;

						_config.Record.Open_all(false);
						while (_config.Record.Read()) ;
						_config.Record.Close();

						Console.WriteLine(
							"Record.Open()    \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						#region _config.delObject();
						_conter = DateTime.Now.Ticks;

						_config.Record.Open_all(true);
						while (_config.Record.Read()) {
							if (_config.Fields.Config == "DELETE THIS, IT IS A TEST") {
								_config.delObject();
							}
						}
						_config.Record.Close();

						Console.WriteLine(
							"delObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						#region _config.getObject();
						_conter = DateTime.Now.Ticks;

						_config.Fields.Name = "SomeIntConfig";
						_config.Fields.Config = "1245";
						_config.Fields.Type = 4;
						_config.setObject(true);

						for (int c = 0; c < _cycles; c++) {
							_config.getObject("SomeIntConfig");
						}

						Console.WriteLine(
							"getObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion
						_config.Dispose(); _config = null;
						//---
						DO_User _user = new DO_User(_cons[_con]);

						#region _user.insObject();
						_conter = DateTime.Now.Ticks;

						for (int c = 0; c < _cycles; c++) {
							bool _constraint;
							_user.Fields.Login = c.ToString();
							_user.Fields.Password = "******";
							_user.insObject(true, out _constraint);
						}

						_user.Record.Open_all(true);
						while (_user.Record.Read()) {
							if (_user.Fields.Password == "DELETE THIS, IT IS A TEST") {
								_user.delObject();
							}
						}
						_user.Record.Close();

						Console.WriteLine(
							"insObject()      \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);
						#endregion

						_conter = DateTime.Now.Ticks;
						for (int c = 0; c < _cycles; c++) {
							if (!_user.isObject_byLogin("fmonteiro")) {
								bool _constraint;
								_user.Fields.Login = "******";
								_user.Fields.Password = "******";
								_user.insObject(true, out _constraint);
							}
							_user.getObject_byLogin("fmonteiro");
						}
						Console.WriteLine(
							"getObject_by()   \t{0}\tcached:{1}\tcompiled:{2}\t{3}",
							DBConnectionsupport.GetDBServerType(_cons[_con]),
							(_cached == 1),
							(_compiled == 1),
							(DateTime.Now.Ticks - _conter).ToString()
						);

						_user.Dispose(); _user = null;
					}
					_cons[_con].Transaction.Rollback();
					_cons[_con].Transaction.Terminate();
					_cons[_con].Close();
				}
			}
			Console.WriteLine("Press any key to continue...");
			Console.ReadLine();
		}