public void Data_SaveableDatabase_Update() { var testEntity = new CustomerInfo(); var saver = SaveableDatabase <CustomerInfo> .Construct(); var oldFirstName = TypeExtension.DefaultString; var newFirstName = DateTime.UtcNow.Ticks.ToString(); int entityID = TypeExtension.DefaultInteger; var entityKey = TypeExtension.DefaultGuid; // Create and capture original data this.Data_SaveableDatabase_Insert(); testEntity = saver.GetAll().OrderByDescending(x => x.CreatedDate).FirstOrDefaultSafe(); oldFirstName = testEntity.FirstName; entityID = testEntity.ID; entityKey = testEntity.Key; testEntity.FirstName = newFirstName; Assert.IsTrue(testEntity.IsNew == false); Assert.IsTrue(testEntity.ID != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); // Do Update saver.Save(testEntity); // Pull from DB and retest testEntity = saver.GetByID(entityID); Assert.IsTrue(testEntity.IsNew == false); Assert.IsTrue(testEntity.ID == entityID); Assert.IsTrue(testEntity.Key == entityKey); Assert.IsTrue(testEntity.ID != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); }
public void Data_SaveableDatabase_GetWhere() { // Plain EntityInfo object var testData2 = SaveableDatabase <CustomerInfo> .Construct(); var testEntity2 = new CustomerInfo(); var testId2 = testData2.GetAllExcludeDefault().FirstOrDefaultSafe().ID; testEntity2 = testData2.GetAll().Where(x => x.ID == testId2).FirstOrDefaultSafe(); Assert.IsTrue(testEntity2.IsNew == false); Assert.IsTrue(testEntity2.ID != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity2.Key != TypeExtension.DefaultGuid); // CrudEntity object this.Data_SaveableDatabase_Insert(); var testData = SaveableDatabase <CustomerInfo> .Construct(); var testEntity = new CustomerInfo(); var testId = testData.GetAllExcludeDefault().FirstOrDefaultSafe().ID; testEntity = testData.GetAll().Where(x => x.ID == testId).FirstOrDefaultSafe(); Assert.IsTrue(testEntity.IsNew == false); Assert.IsTrue(testEntity.ID != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); }
public void Data_SaveableDatabase_Delete() { var saver = SaveableDatabase <CustomerInfo> .Construct(); var testEntity = new CustomerInfo(); var oldID = TypeExtension.DefaultInteger; var oldKey = TypeExtension.DefaultGuid; // Insert and baseline test this.Data_SaveableDatabase_Insert(); testEntity = saver.GetAll().OrderByDescending(x => x.CreatedDate).FirstOrDefaultSafe(); oldID = testEntity.ID; oldKey = testEntity.Key; Assert.IsTrue(testEntity.IsNew == false); Assert.IsTrue(testEntity.ID != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); // Do delete saver.Delete(testEntity); // Pull from DB and retest testEntity = saver.GetAll().Where(x => x.ID == oldID).FirstOrDefaultSafe(); Assert.IsTrue(testEntity.IsNew == true); Assert.IsTrue(testEntity.ID != oldID); Assert.IsTrue(testEntity.Key != oldKey); Assert.IsTrue(testEntity.ID == TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key == TypeExtension.DefaultGuid); // Add to recycle bin for cleanup recycleBin.Add(testEntity.ID); }
public void Data_SaveableDatabase_RepeatingQueries() { var dataStore = SaveableDatabase <CustomerInfo> .Construct(); var customer = new CustomerInfo(); // Multiple Gets var a = dataStore.GetAll().ToList(); var aCount = a.Count; var b = dataStore.GetAll().ToList(); var bCount = b.Count; // datastore.Save customer = dataStore.GetByID(a.FirstOrDefaultSafe().ID); customer.FirstName = DateTime.UtcNow.Ticks.ToString(); dataStore.Save(customer); // Save check var c = dataStore.GetAll().ToList(); var cCount = c.Count; Assert.IsTrue(aCount == bCount && bCount == cCount); // customer.save customer.Update(); // Multiple Gets var x = dataStore.GetAll().ToList(); var xCount = x.Count; var y = dataStore.GetAll().ToList(); var yCount = y.Count; var z = dataStore.GetAll().ToList(); var zCount = z.Count; Assert.IsTrue(xCount == yCount && yCount == zCount); }
public void Data_SaveableDatabase_CountAny() { var db = SaveableDatabase <CustomerType> .Construct(); // GetAll() count and any var resultsAll = db.GetAll(); Assert.IsTrue(resultsAll.Count() > 0); Assert.IsTrue(resultsAll.Any() == true); // GetAll().Take(1) count and any var resultsTake = db.GetAll().Take(1); Assert.IsTrue(resultsTake.Count() == 1); Assert.IsTrue(resultsTake.Any() == true); // Get an ID to test var id = db.GetAllExcludeDefault().FirstOrDefaultSafe().ID; Assert.IsTrue(id != TypeExtension.DefaultInteger); // GetAll().Where count and any var resultsWhere = db.GetAll().Where(x => x.ID == id); Assert.IsTrue(resultsWhere.Count() > 0); Assert.IsTrue(resultsWhere.Any() == true); }
public void Data_SaveableDatabase_GetByID() { var custData = SaveableDatabase <CustomerInfo> .Construct(); var custEntity = new CustomerInfo(); var randomID = custData.GetAll().FirstOrDefaultSafe().ID; var randomID2 = custData.GetAll().OrderByDescending(x => x.ID).FirstOrDefaultSafe().ID; // GetByID var custGetByID = custData.GetByID(randomID); Assert.IsTrue(custGetByID.ID != TypeExtension.DefaultInteger); Assert.IsTrue(custGetByID.Key != TypeExtension.DefaultGuid); // GetAll().Where() by LINQ expression var fname1 = custData.GetAll(); Assert.IsTrue(fname1.Any()); var fnameValue = fname1.FirstOrDefaultSafe().FirstName; var fname2 = custData.GetAll().Where(y => y.FirstName == fnameValue); Assert.IsTrue(fname2.Any()); var fname3 = fname1.Where(y => y.FirstName == fnameValue); Assert.IsTrue(fname3.Any()); // Where 1 record custEntity = custData.GetAll().Take(1).FirstOrDefaultSafe(); Assert.IsTrue(custEntity.ID == randomID); Assert.IsTrue(custEntity.IsNew == false); }
public void Data_SaveableDatabase_GetByID() { var custData = SaveableDatabase <CustomerInfo> .Construct(); var custEntity = new CustomerInfo(); var randomID = custData.GetAll().FirstOrDefaultSafe().ID; var randomID2 = custData.GetAll().OrderByDescending(x => x.ID).FirstOrDefaultSafe().ID; // GetByID var custGetByID = custData.GetByID(randomID); var custFirstName = custGetByID.FirstName; Assert.IsTrue(custGetByID.ID != TypeExtension.DefaultInteger); Assert.IsTrue(custGetByID.Key != TypeExtension.DefaultGuid); // By custom where var fname = custData.GetAll().Where(y => y.FirstName == custFirstName); Assert.IsTrue(fname.Any() == true); var fnEntity = fname.FirstOrDefaultSafe(); Assert.IsTrue(fnEntity.IsNew == false); Assert.IsTrue(fnEntity.FirstName != TypeExtension.DefaultString); // Where 1 record custEntity = custData.GetAll().Take(1).FirstOrDefaultSafe(); Assert.IsTrue(custEntity.ID == randomID); Assert.IsTrue(custEntity.IsNew == false); }
/// <summary> /// Creates this object in the database /// ActivityContext record is auto-generated /// </summary>s /// <returns></returns> public virtual TEntity Create() { var returnValue = new TEntity(); var db = SaveableDatabase <TEntity> .Construct(); returnValue = db.Save(this.ToEntity(), forceInsert: true); return(returnValue); }
private void Cleanup() { var db = SaveableDatabase <CustomerInfo> .Construct(); foreach (int item in recycleBin) { db.GetByID(item).Delete(); } }
public static void Cleanup() { var db = SaveableDatabase <CustomerInfo> .Construct(); foreach (int item in CrudEntityTests.RecycleBin) { db.GetByID(item).Delete(); } }
/// <summary> /// Creates this object in the database /// ActivityContext record is supplied as parameter /// </summary> /// <param name="activity">Activity Context of this operation, used to track DB commits</param> /// <returns>Fresh TEntity pulled from the database, as DB might change some data automatically</returns> public virtual TEntity Create(IActivityContext activity) { var returnValue = new TEntity(); var db = SaveableDatabase <TEntity> .Construct(); this.ActivityContextID = activity.ActivityContextID; returnValue = db.Save(this.ToEntity(), forceInsert: true); return(returnValue); }
/// <summary> /// Deletes this object with automatic tracking /// </summary> /// <returns>Object deleted and all current values. Returned values should be empty</returns> public virtual bool Delete() { var db = SaveableDatabase <TEntity> .Construct(); var returnValue = TypeExtension.DefaultBoolean; returnValue = db.Delete(this.ToEntity()); return(returnValue); }
/// <summary> /// Deletes this object from the database /// ActivityContext record is supplied as parameter /// </summary> /// <param name="activity">Activity Context of this operation, used to track DB commits</param> /// <returns>Fresh TEntity pulled from the database, as DB might change some data automatically</returns> public virtual bool Delete(IActivityContext activity) { var db = SaveableDatabase <TEntity> .Construct(); var returnValue = TypeExtension.DefaultBoolean; this.ActivityContextID = activity.ActivityContextID; returnValue = db.Delete(this.ToEntity()); return(returnValue); }
private void Cleanup() { var saver = SaveableDatabase <CustomerInfo> .Construct(); var toDelete = new CustomerInfo(); foreach (int item in recycleBin) { toDelete = saver.GetAll().Where(x => x.ID == item).FirstOrDefaultSafe(); saver.Delete(toDelete); } }
public void Data_SaveableDatabase_GetAll() { var typeDB = SaveableDatabase <CustomerType> .Construct(); var typeResults = typeDB.GetAll().Take(1); Assert.IsTrue(typeResults.Count() > 0); this.Data_SaveableDatabase_Insert(); var custDB = SaveableDatabase <CustomerInfo> .Construct(); var custResults = custDB.GetAll().Take(1); Assert.IsTrue(custResults.Count() > 0); }
public void Data_SaveableDatabase_GetByKey() { // Should create 1 record var custData = SaveableDatabase <CustomerInfo> .Construct(); var custCount = custData.GetAll().Count(); Assert.IsTrue(custCount > 0); // ByKey Should return 1 record var existingKey = custData.GetAll().FirstOrDefaultSafe().Key; var custWhereKey = custData.GetByKey(existingKey); Assert.IsTrue(custWhereKey.Key == existingKey); Assert.IsTrue(custWhereKey.ID != TypeExtension.DefaultInteger); }
public void Data_SaveableDatabase_GetByKey() { var custData = SaveableDatabase <CustomerInfo> .Construct(); // ByKey Should return 1 record var randomRecord = custData.GetAll().FirstOrDefaultSafe(); var custWhereKey = custData.GetByKey(randomRecord.Key); Assert.IsTrue(custWhereKey.Key == randomRecord.Key); Assert.IsTrue(custWhereKey.ID != TypeExtension.DefaultInteger); // FirstName works, but Key does not var fname = custData.GetAll().Where(y => y.FirstName == randomRecord.FirstName); Assert.IsTrue(fname.Count() > 0); }
public void Data_SaveableDatabase_Insert() { var dataStore = SaveableDatabase <CustomerInfo> .Construct(); var testEntity = new CustomerInfo(); var resultEntity = new CustomerInfo(); var oldID = TypeExtension.DefaultInteger; var oldKey = TypeExtension.DefaultGuid; var newID = TypeExtension.DefaultInteger; var newKey = TypeExtension.DefaultGuid; // Create and insert record testEntity.Fill(testEntities[Arithmetic.Random(1, 5)]); oldID = testEntity.ID; oldKey = testEntity.Key; Assert.IsTrue(testEntity.IsNew == true); Assert.IsTrue(testEntity.ID == TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key == TypeExtension.DefaultGuid); // Do Insert and check passed entity and returned entity resultEntity = dataStore.Save(testEntity, true); Assert.IsTrue(testEntity.ID != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); Assert.IsTrue(resultEntity.ID != TypeExtension.DefaultInteger); Assert.IsTrue(resultEntity.Key != TypeExtension.DefaultGuid); // Pull from DB and retest testEntity = dataStore.GetByID(resultEntity.ID); Assert.IsTrue(testEntity.IsNew == false); Assert.IsTrue(testEntity.ID != oldID); Assert.IsTrue(testEntity.Key != oldKey); Assert.IsTrue(testEntity.ID != TypeExtension.DefaultInteger); Assert.IsTrue(testEntity.Key != TypeExtension.DefaultGuid); // Cleanup recycleBin.Add(testEntity.ID); }
/// <summary> /// Inserts or Updates this object with Workflow-based tracking. /// </summary> /// <param name="entity">Entity to be committed to the datastore</param> /// <param name="activity">Activity record owning this process</param> public TEntity Save(TEntity entity, IActivityContext activity) { var db = SaveableDatabase <TEntity> .Construct(); return(db.Save(entity, activity)); }
/// <summary> /// Saves this object with automatic tracking. /// </summary> /// <param name="entity">Entity to be committed to the datastore</param> /// <param name="forceInsert">Ability to override insert vs. update and force insert</param> public TEntity Save(TEntity entity, bool forceInsert) { var db = SaveableDatabase <TEntity> .Construct(); return(db.Save(entity, forceInsert)); }
/// <summary> /// Deletes the passed object with automatic tracking /// </summary> /// <param name="entity">Entity to be removed from the datastore</param> /// <returns>True if record deleted, false if not</returns> public bool Delete(TEntity entity) { var db = SaveableDatabase <TEntity> .Construct(); return(db.Delete(entity)); }
/// <summary> /// Inserts or Updates this object in the database /// </summary> /// <returns>Object updated and all current values as of the save</returns> public TEntity Save(TEntity entity) { var db = SaveableDatabase <TEntity> .Construct(); return(db.Save(entity)); }