public void TestGetBusinessObjectByDatabaseCriteria() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadDefaultClassDef(); ContactPersonTestBO cp = new ContactPersonTestBO(); cp.Surname = Guid.NewGuid().ToString("N"); cp.Save(); BusinessObjectLoaderDB loader = new BusinessObjectLoaderDB(DatabaseConnection.CurrentConnection); //--------------Assert PreConditions---------------- //---------------Execute Test ---------------------- //ContactPersonTestBO loadedCP = loader.GetBusinessObjectByDatabaseCriteria<ContactPersonTestBO>("Surname = '" + cp.Surname + "'"); //---------------Test Result ----------------------- //TODO: assert are same // Assert.AreEqual(cp.ID, loadedCP.ID); //---------------Tear Down ------------------------- }
public void Test_ObjectManagerIndexers() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); IBusinessObjectManager boMan = new BusinessObjectManagerNull(); ContactPersonTestBO cp = new ContactPersonTestBO(); boMan.Add(cp); //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); //---------------Execute Test ---------------------- //IBusinessObject boFromObjMan_StringID = boMan[cp.ID.AsString_CurrentValue()]; IBusinessObject boFromObjMan_StringID = boMan[cp.ID.ObjectID]; IBusinessObject boFromMan_ObjectID = boMan[cp.ID]; //---------------Test Result ----------------------- Assert.IsNull(boFromObjMan_StringID); Assert.IsNull(boFromMan_ObjectID); }
public void Test_LoadObject_ViaCollection_UpdatedObjectMan_Generic() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = CreateSavedCP(); Guid contactPersonId = cp.ContactPersonID; IPrimaryKey id = cp.ID; cp = null; TestUtil.WaitForGC(); boMan.ClearLoadedObjects(); //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); //---------------Execute Test ---------------------- Criteria criteria = new Criteria("ContactPersonID", Criteria.ComparisonOp.Equals, contactPersonId); IBusinessObjectCollection colContactPeople = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection <ContactPersonTestBO>(criteria); //---------------Test Result ----------------------- Assert.AreEqual(1, colContactPeople.Count); IBusinessObject loadedCP = colContactPeople[0]; Assert.IsNotNull(loadedCP); Assert.AreNotSame(cp, loadedCP); Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(loadedCP)); Assert.IsTrue(boMan.Contains(id)); Assert.IsTrue(boMan.Contains(id.GetObjectId())); Assert.AreSame(loadedCP, boMan[id]); Assert.AreSame(loadedCP, boMan[id.GetObjectId()]); }
public void Test_AddedToObjectManager() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); ContactPersonTestBO cp = new ContactPersonTestBO(); BusinessObjectManager boMan = BusinessObjectManager.Instance; //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); //---------------Execute Test ---------------------- cp.Surname = TestUtil.CreateRandomString(); boMan.Add(cp); //---------------Test Result ----------------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); Assert.IsTrue(boMan.Contains(cp.ID)); Assert.IsTrue(boMan.Contains(cp.ID.GetObjectId())); Assert.AreSame(cp, boMan[cp.ID.GetObjectId()]); Assert.AreSame(cp, boMan[cp.ID]); }
public void Test_ObjManObjectIndexer_ObjectDoesNotExistInObjectMan() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = new ContactPersonTestBO(); //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); //---------------Execute Test ---------------------- try { IBusinessObject bo = boMan[cp.ID]; Assert.Fail("expected Err"); } //---------------Test Result ----------------------- catch (HabaneroDeveloperException ex) { StringAssert.Contains("There is an application error please contact your system administrator", ex.Message); StringAssert.Contains("There was an attempt to retrieve the object identified by", ex.DeveloperMessage); } }
public void ShouldReturnTableWithCorrectColumnsAndValues_WhenCriteriaAreSupplied() { //---------------Set up test pack------------------- var classDef = ContactPersonTestBO.LoadDefaultClassDef(); DateTime dateTime = DateTime.Now; var cp1 = CreateContactPerson(dateTime); var selectQuery = QueryBuilder.CreateSelectQuery(classDef); selectQuery.Fields.Clear(); const string propertyName = "Surname"; selectQuery.Fields.Add(propertyName, QueryBuilder.CreateQueryField(classDef, propertyName)); selectQuery.Criteria = new Criteria("DateOfBirth", Criteria.ComparisonOp.Equals, dateTime); //---------------Execute Test ---------------------- var resultSet = _queryResultLoader.GetResultSet(selectQuery); //---------------Test Result ----------------------- var fields = resultSet.Fields.ToList(); var rows = resultSet.Rows.ToList(); Assert.AreEqual(1, fields.Count); Assert.AreEqual(1, rows.Count); Assert.AreEqual(propertyName, fields[0].PropertyName); Assert.AreEqual(cp1.Surname, rows[0].RawValues[0]); }
public void ShouldMapValuesToCorrectType_WhenPropertyIsNotStringAndDatabaseTypeIs() { //---------------Set up test pack------------------- var classDef = ContactPersonTestBO.LoadDefaultClassDef(); classDef.PropDefcol["FirstName"].PropertyType = typeof(int); var cp1 = new ContactPersonTestBO(); cp1.Surname = Guid.NewGuid().ToString("N"); var firstNameValue = 20; cp1.SetPropertyValue("FirstName", firstNameValue); cp1.Save(); var selectQuery = QueryBuilder.CreateSelectQuery(classDef); selectQuery.Fields.Clear(); selectQuery.Fields.Add("FirstName", QueryBuilder.CreateQueryField(classDef, "FirstName")); //---------------Execute Test ---------------------- var resultSet = _queryResultLoader.GetResultSet(selectQuery); //---------------Test Result ----------------------- var rows = resultSet.Rows.ToList(); Assert.AreEqual(firstNameValue, rows[0].Values[0]); }
public void TestFindAll_UsingClassDef_BUGFIX_ShouldBeThreadsafe(string aaa) { //---------------Set up test pack------------------- BORegistry.DataAccessor = new DataAccessorInMemory(new DataStoreInMemory()); ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadDefaultClassDef(); OrganisationTestBO.LoadDefaultClassDef(); var dataStore = new DataStoreInMemory(); var now = DateTime.Now; var cp1 = new ContactPersonTestBO { DateOfBirth = now, Surname = TestUtil.GetRandomString() }; cp1.Save(); dataStore.Add(cp1); var cp2 = new ContactPersonTestBO { DateOfBirth = now, Surname = TestUtil.GetRandomString() }; cp2.Save(); dataStore.Add(cp2); //var criteria = MockRepository.GenerateStub<Criteria>("DateOfBirth", Criteria.ComparisonOp.Equals, now); //criteria.Stub(o => o.IsMatch(Arg<IBusinessObject>.Is.Anything)).WhenCalled(invocation => //{ // Thread.Sleep(100); // invocation.ReturnValue = true; //}).Return(true); var criteria = new Criteria("DateOfBirth", Criteria.ComparisonOp.Equals, now); for (int i1 = 0; i1 < 1000; i1++) { dataStore.Add(OrganisationTestBO.CreateSavedOrganisation()); } var threads = new List <Thread>(); threads.Add(new Thread(() => { for (int i1 = 0; i1 < 1000; i1++) { dataStore.Add(OrganisationTestBO.CreateSavedOrganisation()); } })); var exceptions = new List <Exception>(); threads.Add(new Thread(() => { try { for (int i = 0; i < 10; i++) { dataStore.FindAll(ClassDef.Get <ContactPersonTestBO>(), criteria); } } catch (Exception ex) { exceptions.Add(ex); } })); //---------------Execute Test ---------------------- threads.AsParallel().ForAll(thread => thread.Start()); threads.AsParallel().ForAll(thread => thread.Join()); //Assert.DoesNotThrow(() => //{ //var col = dataStore.FindAll(ClassDef.Get<ContactPersonTestBO>(), criteria); //thread.Join(); //}); //---------------Test Result ----------------------- if (exceptions.Count > 0) { Assert.Fail("Has an Exception: " + exceptions[0].ToString()); } }