public void SetUp() { cm.Clear(false); cm.LoadFile(CONF); cm.LoadFile("../../test_files/stress/ConnectionFactory.xml"); string name = cm.GetValue("HermesNS.TC.Services.ScheduleItem.Persistence.HermesScheduleItemPersistenceProvider", "connectionName"); provider = new HermesScheduleItemPersistenceProvider(name, new HermesScheduleItemPersistenceHelper()); group = CreateActivityGroup(); provider.SaveActivityGroup(group); activityType = CreateActivityType(); provider.SaveActivityType(activityType); activity = CreateActivity(); provider.SaveActivity(activity); itemStatus = CreateScheduleItemStatus(); provider.SaveScheduleItemStatus(itemStatus); requestStatus = CreateScheduleItemRequestStatus(); provider.SaveScheduleItemRequestStatus(requestStatus); scheduleItem = CreateScheduleItem(); provider.SaveScheduleItem(scheduleItem); }
public void BenchmarkSaveScheduleItems() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); HermesActivity activity = client.CreateActivity("Test", activityType); // Create the item HermesScheduleItem item = client.CreateScheduleItem(DateTime.Today, activity); StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { item.Duration = i; IList <HermesScheduleItem> items = new List <HermesScheduleItem>(); items.Add(item); // Save the item. IList <HermesScheduleItem> result = client.SaveScheduleItems(items); // Verify the result. Assert.IsNotNull(result, "Should not be null."); } StressTestsHelper.Stop("SaveScheduleItems"); }
public void BenchmarkDeleteScheduleItems() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); HermesActivity activity = client.CreateActivity("Test", activityType); HermesScheduleItem[] items = new HermesScheduleItem[StressTestsHelper.Iteration]; for (int i = 0; i < StressTestsHelper.Iteration; i++) { // Create the item items[i] = client.CreateScheduleItem(DateTime.Today, activity); } StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { IList <string> ids = new List <string>(); ids.Add(items[i].Id); // Delete the items. client.DeleteScheduleItems(ids); } StressTestsHelper.Stop("DeleteScheduleItems"); }
public void TestGetAllActivityGroups_Accuracy2() { HermesActivityGroup first = AccuracyTestsHelper.CreateHermesActivityGroup(); IList <HermesActivityGroup> second = instance.GetAllActivityGroups(); Assert.AreEqual(0, second.Count, "GetAllActivityGroups is wrong."); }
public void TestGetActivityGroup_Accuracy2() { HermesActivityGroup first = AccuracyTestsHelper.CreateHermesActivityGroup(); HermesActivityGroup second = instance.GetActivityGroup(first.Id); Assert.IsNull(second); }
/// <summary> /// Validates HermesActivityGroup. /// </summary> /// <param name="first">The first entity.</param> /// <param name="second">>The second entity.</param> internal static void VerifyHermesActivityGroup(HermesActivityGroup first, HermesActivityGroup second) { Assert.AreEqual(first.Abbreviation, second.Abbreviation, "Abbreviation is wrong."); Assert.AreEqual(first.Id, second.Id, "Id is wrong."); Assert.AreEqual(first.LastModifiedBy, second.LastModifiedBy, "LastModifiedBy is wrong."); Assert.AreEqual(first.LastModifiedDate.Date, second.LastModifiedDate.Date, "LastModifiedDate is wrong."); Assert.AreEqual(first.Name, second.Name, "Name is wrong."); }
public void BenchmarkCreateActivityGroup() { StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG" + i); Assert.IsNotNull(activityGroup, "activityGroup should have been created."); } StressTestsHelper.Stop("CreateActivityGroup"); }
/// <summary> /// Create the HermesActivityGroup for the test /// </summary> /// <returns>the instance of the HermesActivityGroup</returns> private HermesActivityGroup CreateActivityGroup() { HermesActivityGroup group = new HermesActivityGroup(); group.Id = Guid.NewGuid().ToString("n"); group.Abbreviation = "HAG"; group.Name = "HermesActivityGroup"; group.LastModifiedBy = "hagUser"; group.LastModifiedDate = DateTime.Now; return(group); }
public void TestGetActivityGroup_Accuracy1() { HermesActivityGroup first = AccuracyTestsHelper.CreateHermesActivityGroup(); instance.SaveActivityGroup(first); // Verify HermesActivityGroup second = instance.GetActivityGroup(first.Id); AccuracyTestsHelper.VerifyHermesActivityGroup(first, second); }
/// <summary> /// Creates HermesActivityGroup. /// </summary> internal static HermesActivityGroup CreateHermesActivityGroup() { HermesActivityGroup entity = new HermesActivityGroup(); entity.Abbreviation = "Abbreviation 1"; entity.Id = Guid.NewGuid().ToString(); entity.LastModifiedBy = "zaixiang"; entity.LastModifiedDate = DateTime.Now; entity.Name = "HermesActivityGroup"; return(entity); }
public void BenchmarkCreateActivityType() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { HermesActivityType activityType = client.CreateActivityType("AT" + i, activityGroup); Assert.IsNotNull(activityType, "activityType should have been created."); } StressTestsHelper.Stop("CreateActivityType"); }
public void TestGetAllActivityGroups_Accuracy1() { HermesActivityGroup first = AccuracyTestsHelper.CreateHermesActivityGroup(); instance.SaveActivityGroup(first); // Verify IList <HermesActivityGroup> second = instance.GetAllActivityGroups(); Assert.AreEqual(1, second.Count, "GetAllActivityGroups is wrong."); AccuracyTestsHelper.VerifyHermesActivityGroup(first, second[0]); }
/// <summary> /// Create an instance of <see cref="HermesActivityGroup"/>. /// </summary> /// <returns>The created HermesActivityGroup instance.</returns> private static HermesActivityGroup CreateGroup() { HermesActivityGroup group = new HermesActivityGroup(); group.Abbreviation = "dev"; group.Name = "Developer"; group.LastModifiedBy = "failureTester"; group.LastModifiedDate = DateTime.UtcNow; group.Id = Guid.NewGuid().ToString("N"); return(group); }
public void BenchmarkGetActivityGroup() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { HermesActivityGroup result = client.GetActivityGroup(activityGroup.Id); Assert.IsNotNull(result, "result should have been retrieved."); } StressTestsHelper.Stop("GetActivityGroup"); }
public void BenchmarkGetActivityType() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { HermesActivityType result = client.GetActivityType(activityType.Id); Assert.IsNotNull(result, "result should have been created."); } StressTestsHelper.Stop("GetActivityType"); }
public void BenchmarkDeleteActivityGroup() { HermesActivityGroup[] activityGroups = new HermesActivityGroup[StressTestsHelper.Iteration]; for (int i = 0; i < StressTestsHelper.Iteration; i++) { activityGroups[i] = client.CreateActivityGroup("AG" + i); } StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { client.DeleteActivityGroup(activityGroups[i].Id); } StressTestsHelper.Stop("DeleteActivityGroup"); }
public void BenchmarkGetAllActivityTypes() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); for (int i = 0; i < 10; i++) { client.CreateActivityType("AT" + i, activityGroup); } StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { IList <HermesActivityType> result = client.GetAllActivityTypes(); Assert.IsNotNull(result, "result should have been created."); } StressTestsHelper.Stop("GetAllActivityTypes"); }
public void TestDeleteActivityGroup_Accuracy() { HermesActivityGroup first = AccuracyTestsHelper.CreateHermesActivityGroup(); instance.SaveActivityGroup(first); // Verify HermesActivityGroup second = instance.GetActivityGroup(first.Id); Assert.IsNotNull(second, "SaveActivityGroup is wrong."); instance.DeleteActivityGroup(first.Id); // Verify second = instance.GetActivityGroup(first.Id); Assert.IsNull(second, "DeleteActivityGroup is wrong."); }
public void TestActivityGroup() { DateTime start = DateTime.Now; HermesActivityGroup activityGroup = CreateActivityGroup(); for (int i = 1; i <= ITERATION; i++) { activityGroup.LastModifiedBy = "test" + i; provider.SaveActivityGroup(activityGroup); HermesActivityGroup result = provider.GetActivityGroup(activityGroup.Id); Assert.AreEqual(activityGroup.LastModifiedBy, result.LastModifiedBy); provider.DeleteActivityGroup(activityGroup.Id); Assert.IsNull(provider.GetActivityGroup(activityGroup.Id)); IList <HermesActivityGroup> list = provider.GetAllActivityGroups(); } Console.WriteLine("test ActivityGroup run {0} times, taking {1}ms.", ITERATION, (DateTime.Now - start).TotalMilliseconds.ToString("n")); }
public void BenchmarkDeleteActivity() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); HermesActivity[] activities = new HermesActivity[StressTestsHelper.Iteration]; for (int i = 0; i < StressTestsHelper.Iteration; i++) { activities[i] = client.CreateActivity("Test", activityType); } StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { client.DeleteActivity(activities[i].Id); } StressTestsHelper.Stop("DeleteActivity"); }
public void BenchmarkCreateScheduleItem() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); HermesActivity activity = client.CreateActivity("Test", activityType); StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { // Create the item HermesScheduleItem item = client.CreateScheduleItem(DateTime.Today, activity); // Verify the result. HermesScheduleItem result = client.GetScheduleItem(item.Id); Assert.IsNotNull(result, "HermesScheduleItem gotten should not be null."); } StressTestsHelper.Stop("CreateScheduleItem"); }
public void BenchmarkSaveActivity() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); HermesActivity[] activities = new HermesActivity[StressTestsHelper.Iteration]; for (int i = 0; i < StressTestsHelper.Iteration; i++) { activities[i] = client.CreateActivity("Test" + i, activityType); activities[i].Abbreviation = "abbr" + i; activities[i].ActivityType = activityType; } StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { HermesActivity activity = client.SaveActivity(activities[i]); Assert.IsNotNull(activity, "Should not be null."); } StressTestsHelper.Stop("SaveActivity"); }
/// <summary> /// Creates entity instances to be used for the tests. /// </summary> private void CreateReferenceEntities() { // Get an activity type to be used in tests refHermesActivityType = client.GetActivityType("22222222222222222222222222222222"); // Get an activity group to be used in tests refHermesActivityGroup = client.GetActivityGroup("11111111111111111111111111111111"); // Get an activity to be used in tests refHermesActivity = client.GetActivity("33333333333333333333333333333333"); // Get an activity to be used in tests refHermesScheduleItemStatus = client.GetScheduleItemStatus("44444444444444444444444444444444"); // Get an activity to be used in tests refHermesScheduleItemRequestStatus = client.GetScheduleItemRequestStatus("55555555555555555555555555555555"); // Get an activity to be used in tests refHermesScheduleItem = client.GetScheduleItem("66666666666666666666666666666666"); }
public void BenchmarkGetScheduleItemEditCopy() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); HermesActivity activity = client.CreateActivity("Test", activityType); HermesScheduleItem[] items = new HermesScheduleItem[StressTestsHelper.Iteration]; HermesScheduleItem parent = client.CreateScheduleItem(DateTime.Today, activity); for (int i = 0; i < StressTestsHelper.Iteration; i++) { // Create the item items[i] = client.CreateScheduleItemEditCopy(parent); } StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { client.GetScheduleItemEditCopy(parent); } StressTestsHelper.Stop("GetScheduleItemEditCopy"); }
/// <summary> /// <para>Validates the entity for required fields and other validation rules, /// using the HermesScheduleItemService to query for data.</para> /// /// Validates the following rules: /// <list type="bullet"> /// <item>Abbreviation must be non-null, non-empty and must not be more than 20 characters</item> /// <item>Name must be non-null, non-empty and must not be more than 50 characters</item> /// <item>There must not be existing HermesActivityType which has the same abbreviation as the current /// HermesActivityType but a different id.</item> /// <item>There must not be existing HermesActivityType which has the same name as the current /// HermesActivityType but a different id.</item> /// <item>The ActivityGroup property must not be null and must be an existing ActivityGroup /// in the database.</item> /// </list> /// /// </summary> /// <exception cref="SelfDocumentingException">Wraps any exception that may occur.</exception> /// <returns>True if the validation succeeded. False otherwise.</returns> public override bool Validate() { bool abbrPassed = true; bool namePassed = true; HermesActivityGroup activityGroup = null; IList <HermesActivityType> activityTypes = null; HermesActivityType act = null; try { //Validate abbreviation dataValidationRecords.AddRange(Helper.ValidateAbbreviation( item.Abbreviation, item.GetType().FullName, "HermesActivityTypeValidator", item.Id, out abbrPassed)); //Validate name dataValidationRecords.AddRange(Helper.ValidateName( item.Name, item.GetType().FullName, "HermesActivityTypeValidator", item.Id, out namePassed)); //Validate ActivityGroup if (!Helper.ValidateNotNull(item.ActivityGroup, null, false)) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "ActivityGroup", "HermesActivityTypeValidator.MissingActivityGroup", null)); } else { activityGroup = hermesScheduleItemService.GetActivityGroup(item.ActivityGroup.Id); if (!Helper.ValidateNotNull(activityGroup, null, false)) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "ActivityGroup", "HermesActivityTypeValidator.IllegalActivityGroup", new object[] { item.ActivityGroup.Id })); } } //Get data from service for checking duplicates only if we need to validate further if (namePassed || abbrPassed) { //Get all HermesActivityGroups: activityTypes = hermesScheduleItemService.GetAllActivityTypes(); foreach (HermesActivityType activityType in activityTypes) { //FOR SDE! act = activityType; if (activityType.Abbreviation != null && activityType.Abbreviation.Equals(item.Abbreviation) && activityType.Id != item.Id && abbrPassed) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "Abbreviation", "HermesActivityTypeValidator.AbbreviationNotUnique", new object[] { item.Abbreviation, activityType.Id })); //Dont look for any more duplicate abbreviations abbrPassed = false; } if (activityType.Name != null && activityType.Name.Equals(item.Name) && activityType.Id != item.Id && namePassed) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "Name", "HermesActivityTypeValidator.NameNotUnique", new object[] { item.Name, activityType.Id })); //Dont look for any more duplicate names namePassed = false; } } } //Nothing failed validation then true, else false return(dataValidationRecords.Count == 0); } catch (Exception e) { throw Helper.GetSelfDocumentingException(e, "Unable to perform validation.", "HermesNS.TC.Services.ScheduleItem.Validators.HermesActivityTypeValidator.Validate", new string[] { "hermesScheduleItemService", "item" }, new object[] { hermesScheduleItemService, item }, new string[0], new object[0], new string[] { "abbrPassed", "namePassed", "activityGroup", "activityTypes", "act" }, new object[] { abbrPassed, namePassed, activityGroup, activityTypes, act }); } }
public void Demo() { HermesScheduleItemPersistenceProvider hsipp = new HermesScheduleItemPersistenceProvider(); ///////////////////INSERT UPDATE GET DELETE///////////////////////////// // Create an activity group HermesActivityGroup hag = new HermesActivityGroup(); hag.Id = new Guid("1234567890ABCDEF1234567890ABCDEF").ToString(); hag.Abbreviation = "HAG1"; hag.Name = "HermesActivityGroup1"; hag.LastModifiedBy = "hagUser"; hag.LastModifiedDate = new DateTime(2007, 7, 7); //Save it into database hsipp.SaveActivityGroup(hag); //Get it from database HermesActivityGroup getFromDb = hsipp.GetActivityGroup("1234567890ABCDEF1234567890ABCDEF"); //Delete it from database hsipp.DeleteActivityGroup("1234567890ABCDEF1234567890ABCDEF"); //Create an activity type HermesActivityType hat = new HermesActivityType(); hat.Id = new Guid("34563456345634563456345634563456").ToString(); hat.Abbreviation = "HAT1"; hat.Name = "HermesActivityType1"; hat.LastModifiedBy = "hatUser"; hat.LastModifiedDate = new DateTime(2007, 11, 7); hat.ActivityGroup = hsipp.GetActivityGroup("11111111111111111111111111111111"); //Save it into database hsipp.SaveActivityType(hat); //Get it from database HermesActivityType getFromDb2 = hsipp.GetActivityType("34563456345634563456345634563456"); //Delete it from database hsipp.DeleteActivityType("34563456345634563456345634563456"); //Create an activity HermesActivity activity = new HermesActivity(); activity.Id = new Guid("99887766998877669988776699887766").ToString(); activity.Abbreviation = "ACT"; activity.ActivityType = hsipp.GetActivityType("22222222222222222222222222222222"); activity.DefaultDuration = new decimal(33.45); activity.DefaultExpireDays = 666; activity.DefaultStartTime = 432; activity.Enabled = true; activity.ExclusiveFlag = true; activity.LastModifiedBy = "ACTuser"; activity.LastModifiedDate = new DateTime(2007, 8, 8); activity.Name = "CoolAndReallyNiceActivity"; activity.WorkDayAmount = 9966; //Save it into database hsipp.SaveActivity(activity); //Get it from database HermesActivity getFromDb3 = hsipp.GetActivity("99887766998877669988776699887766"); //Delete it from database hsipp.DeleteActivity("99887766998877669988776699887766"); //Create a ScheduleItem and save HermesScheduleItem hsiParent = new HermesScheduleItem(); hsiParent.Id = new Guid("19081908190819081908190819081908").ToString(); hsiParent.Activity = hsipp.GetActivity("33333333333333333333333333333333"); hsiParent.Duration = new decimal(546.89); hsiParent.ExceptionFlag = 'Y'; hsiParent.ExpirationDate = new DateTime(2005, 12, 23); hsiParent.LastModifiedBy = "ivern"; hsiParent.LastModifiedDate = new DateTime(2007, 12, 1); HermesGenericNote note = new HermesGenericNote(); note.Id = new Guid("12340987123409871234098712340987").ToString(); hsiParent.Note = note; hsiParent.ScheduleItemRequestStatus = hsipp.GetScheduleItemRequestStatus("55555555555555555555555555555555"); hsiParent.ScheduleItemStatus = hsipp.GetScheduleItemStatus("44444444444444444444444444444444"); hsiParent.Version = 1; hsiParent.WorkDate = new DateTime(2004, 12, 12); hsiParent.WorkDayAmount = new Decimal(86787.23); hsipp.SaveScheduleItem(hsiParent); //Create another ScheduleItem and save HermesScheduleItem hsiEdit = new HermesScheduleItem(); hsiEdit.Id = new Guid("23451987234519872345198723451987").ToString(); hsiEdit.Activity = hsipp.GetActivity("33333333333333333333333333333333"); hsiEdit.Duration = new decimal(546.89); hsiEdit.ExceptionFlag = 'Y'; hsiEdit.ExpirationDate = new DateTime(2005, 12, 23); hsiEdit.LastModifiedBy = "ivern"; hsiEdit.LastModifiedDate = new DateTime(2007, 12, 1); HermesGenericNote note2 = new HermesGenericNote(); note2.Id = new Guid("12340987123409871234098712340987").ToString(); hsiEdit.Note = note2; hsiEdit.ScheduleItemRequestStatus = hsipp.GetScheduleItemRequestStatus("55555555555555555555555555555555"); hsiEdit.ScheduleItemStatus = hsipp.GetScheduleItemStatus("44444444444444444444444444444444"); hsiEdit.Version = 1; hsiEdit.WorkDate = new DateTime(2004, 12, 12); hsiEdit.WorkDayAmount = new Decimal(86787.23); hsipp.SaveScheduleItem(hsiEdit); //....and so on for other properties /////////////////GET ALL ENTITIES////////// IList <HermesScheduleItemRequestStatus> reqStats = hsipp.GetAllScheduleItemRequestStatuses(); IList <HermesScheduleItemStatus> statuses = hsipp.GetAllScheduleItemStatuses(); IList <HermesActivity> items = hsipp.GetAllActivities(false); //....and so on for other properties //////////////MANAGE SCHEDULE ITEMS RELATIONS//////////////// hsipp.CreateScheduleItemPublishEditCopyRelationship(hsiParent, hsiEdit); hsipp.GetScheduleItemEditCopy(hsiParent); hsipp.GetScheduleItemParentCopy(hsiEdit); hsipp.DeleteScheduleItemPublishEditCopyRelationship(hsiEdit); }