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 TestGetActivityType_Accuracy2() { HermesActivityType first = AccuracyTestsHelper.CreateHermesActivityType(); // Verify HermesActivityType second = instance.GetActivityType(first.Id); Assert.IsNull(second); }
public void TestGetAllActivityTypes_Accuracy2() { HermesActivityType first = AccuracyTestsHelper.CreateHermesActivityType(); // Verify IList <HermesActivityType> second = instance.GetAllActivityTypes(); Assert.AreEqual(0, second.Count, "GetAllActivityTypes is wrong."); }
/// <summary> /// Validates HermesActivityType. /// </summary> /// <param name="first">The first entity.</param> /// <param name="second">>The second entity.</param> internal static void VerifyHermesActivityType(HermesActivityType first, HermesActivityType 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."); VerifyHermesActivityGroup(first.ActivityGroup, second.ActivityGroup); }
public void TestGetActivityType_Accuracy1() { HermesActivityType first = AccuracyTestsHelper.CreateHermesActivityType(); instance.SaveActivityGroup(first.ActivityGroup); instance.SaveActivityType(first); // Verify HermesActivityType second = instance.GetActivityType(first.Id); AccuracyTestsHelper.VerifyHermesActivityType(first, second); }
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"); }
/// <summary> /// Creates HermesActivityType. /// </summary> internal static HermesActivityType CreateHermesActivityType() { HermesActivityType entity = new HermesActivityType(); entity.Abbreviation = "Abbreviation 1"; entity.Id = Guid.NewGuid().ToString(); entity.LastModifiedBy = "zaixiang"; entity.LastModifiedDate = DateTime.Now; entity.Name = "HermesActivityType"; entity.ActivityGroup = CreateHermesActivityGroup(); return(entity); }
/// <summary> /// Create the HermesActivityType for the test /// </summary> /// <returns>the instance of the HermesActivityType</returns> private HermesActivityType CreateActivityType() { HermesActivityType activityType = new HermesActivityType(); activityType.Id = Guid.NewGuid().ToString("n"); activityType.Abbreviation = "HAT1"; activityType.Name = "HermesActivityType1"; activityType.LastModifiedBy = "my"; activityType.LastModifiedDate = new DateTime(2007, 11, 7); activityType.ActivityGroup = group; return(activityType); }
public void TestGetAllActivityTypes_Accuracy1() { HermesActivityType first = AccuracyTestsHelper.CreateHermesActivityType(); instance.SaveActivityGroup(first.ActivityGroup); instance.SaveActivityType(first); // Verify IList <HermesActivityType> second = instance.GetAllActivityTypes(); Assert.AreEqual(1, second.Count, "GetAllActivityGroups is wrong."); AccuracyTestsHelper.VerifyHermesActivityType(first, second[0]); }
/// <summary> /// Create an instance of <see cref="HermesActivityType"/>. /// </summary> /// <returns>The created HermesActivityType instance.</returns> private static HermesActivityType CreateType() { HermesActivityType type = new HermesActivityType(); type.Abbreviation = "C#"; type.Name = "CShape"; type.LastModifiedBy = "failureTester"; type.LastModifiedDate = DateTime.UtcNow; type.Id = Guid.NewGuid().ToString("N"); type.ActivityGroup = CreateGroup(); return(type); }
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 BenchmarkGetAllActivities() { HermesActivityGroup activityGroup = client.CreateActivityGroup("AG1"); HermesActivityType activityType = client.CreateActivityType("AT1", activityGroup); for (int i = 0; i < 10; i++) { client.CreateActivity("Test" + i, activityType); } StressTestsHelper.Start(); for (int i = 0; i < StressTestsHelper.Iteration; i++) { IList <HermesActivity> result = client.GetAllActivities(true); Assert.IsNotNull(result, "result should have been created."); } StressTestsHelper.Stop("GetAllActivities"); }
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 TestDeleteActivityType_Accuracy() { HermesActivityType first = AccuracyTestsHelper.CreateHermesActivityType(); instance.SaveActivityGroup(first.ActivityGroup); instance.SaveActivityType(first); // Verify HermesActivityType second = instance.GetActivityType(first.Id); Assert.IsNotNull(second, "SaveActivityType is wrong."); instance.DeleteActivityType(first.Id); // Verify second = instance.GetActivityType(first.Id); Assert.IsNull(second, "DeleteActivityType is wrong."); }
public void TestActivityType() { DateTime start = DateTime.Now; HermesActivityType hermesActivityType = CreateActivityType(); for (int i = 1; i <= ITERATION; i++) { hermesActivityType.LastModifiedBy = "test" + i; provider.SaveActivityType(hermesActivityType); HermesActivityType result = provider.GetActivityType(hermesActivityType.Id); Assert.AreEqual(hermesActivityType.LastModifiedBy, result.LastModifiedBy); provider.DeleteActivityType(hermesActivityType.Id); Assert.IsNull(provider.GetActivityType(hermesActivityType.Id)); IList <HermesActivityType> list = provider.GetAllActivityTypes(); } Console.WriteLine("ActivityType run {0} times, taking {1}ms.", ITERATION, (DateTime.Now - start).TotalMilliseconds.ToString("n")); }
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 HermesActivity which has the same abbreviation as the current /// HermesActivity but a different id.</item> /// <item>There must not be existing HermesActivity which has the same name as the current /// HermesActivity but a different id.</item> /// <item>The ActivityType property must not be null and must be an existing ActivityType /// 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; HermesActivityType activityType = null; IList <HermesActivity> activities = null; HermesActivity act = null; try { //Validate the name and abbreviation field dataValidationRecords.AddRange( Helper.ValidateAbbreviation(item.Abbreviation, item.GetType().FullName, "HermesActivityValidator", item.Id, out abbrPassed)); dataValidationRecords.AddRange( Helper.ValidateName(item.Name, item.GetType().FullName, "HermesActivityValidator", item.Id, out namePassed)); //Check ActivityType for null if (!Helper.ValidateNotNull(item.ActivityType, null, false)) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "ActivityType", "HermesActivityValidator.MissingActivityType", null)); } //Check if id of ActivityType is actually found. else { //Get ActivityType by Id. activityType = hermesScheduleItemService.GetActivityType(item.ActivityType.Id); if (!Helper.ValidateNotNull(activityType, null, false)) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "ActivityType", "HermesActivityValidator.IllegalActivityType", new object[] { item.ActivityType.Id })); } } //Get data from service for checking duplicates only if we need to validate further if (namePassed || abbrPassed) { //Get all active HermesActivities and check for duplicate Abbreviation and Name activities = hermesScheduleItemService.GetAllActivities(false); foreach (HermesActivity activity in activities) { //FOR SDE! act = activity; if (activity.Abbreviation != null && activity.Abbreviation.Equals(item.Abbreviation) && activity.Id != item.Id && abbrPassed) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "Abbreviation", "HermesActivityValidator.AbbreviationNotUnique", new object[] { item.Abbreviation, activity.Id })); //Dont look for any more duplicate abbreviations abbrPassed = false; } if (activity.Name != null && activity.Name.Equals(item.Name) && activity.Id != item.Id && namePassed) { dataValidationRecords.Add(Helper.CreateDataValidationRecord( item.Id, item.GetType().FullName, "Name", "HermesActivityValidator.NameNotUnique", new object[] { item.Name, activity.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.HermesActivityValidator.Validate", new string[] { "hermesScheduleItemService", "item" }, new object[] { hermesScheduleItemService, item }, new string[0], new object[0], new string[] { "abbrPassed", "namePassed", "activityType", "activities", "act" }, new object[] { abbrPassed, namePassed, activityType, activities, 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); }