public void ProcessResPlan_Should_ExecuteCorrectly() { // Arrange var rowsCount = 0; var builder = new StringBuilder(); var web = new ShimSPWeb().Instance; var siteId = Guid.NewGuid(); var args = new object[] { web, string.Empty, siteId, 1, string.Empty }; ShimCoreFunctions.getConfigSettingSPWebString = (spWeb, setting) => "https://dummy.org/url"; ShimResourcePlan.ProcessResourcePlanStringSPWebStringGuidInt32String = (resUrl, spWeb, planListString, id, hours, workDays) => { var result = new ResourcePlanProcessingResult(); result.ResourceLinks.Add(new ResourcePlanProcessingResult.ResourceLink()); result.ResourceInfos.Add(new ResourcePlanProcessingResult.ResourceInfo()); result.InfoMessages.Add(DummyString); result.ErrorMessages.Add(DummyString); return(result); }; privateObject.SetFieldOrProperty("dtResLink", new DataTable()); privateObject.SetFieldOrProperty("dtResInfo", new DataTable()); privateObject.SetFieldOrProperty("sbErrors", builder); ShimDataRowCollection.AllInstances.AddObjectArray = (_, values) => { rowsCount++; return(new ShimDataRow()); }; // Act privateObject.Invoke(processResPlanMethodName, args); // Assert this.ShouldSatisfyAllConditions( () => timerFix.bErrors.ShouldBeTrue(), () => rowsCount.ShouldBeGreaterThan(0), () => builder.ToString().ShouldNotBeNullOrEmpty()); }
public static ResourcePlanProcessingResult ProcessResourcePlan( string resourceUrl, SPWeb web, string resourcePlanListsString, Guid siteId, int hours, string workdays ) { var result = new ResourcePlanProcessingResult(); if (!string.IsNullOrWhiteSpace(resourceUrl)) { result.ResourceLinks.Add(new ResourcePlanProcessingResult.ResourceLink( web.ServerRelativeUrl, resourceUrl, siteId, workdays, hours)); if (!string.IsNullOrWhiteSpace(resourcePlanListsString)) { var resourcePlanListsCollection = resourcePlanListsString.Replace("\r\n", "\n").Split('\n'); foreach (var resourcePlanList in resourcePlanListsCollection) { if (!string.IsNullOrWhiteSpace(resourcePlanList)) { result.InfoMessages.Add("Processing: " + resourcePlanList); ProcessResourcePlanList(resourcePlanList, web, siteId, ref result); } } } } return(result); }
private static void ProcessResourcePlanList(string resourcePlanList, SPWeb web, Guid siteId, ref ResourcePlanProcessingResult result) { try { var list = web.Lists[resourcePlanList]; var query = new SPQuery(); query.Query = "<Where><And><And><And><IsNotNull><FieldRef Name=\"StartDate\"/></IsNotNull><IsNotNull><FieldRef Name=\"DueDate\"/></IsNotNull></And><IsNotNull><FieldRef Name=\"Work\"/></IsNotNull></And><IsNotNull><FieldRef Name=\"AssignedTo\"/></IsNotNull></And></Where>"; foreach (SPListItem listItem in list.GetItems(query)) { var resourceInfos = ProcessResourcePlanListItem(listItem, list, web, siteId, resourcePlanList); foreach (var resourceInfo in resourceInfos) { result.ResourceInfos.Add(resourceInfo); } } } catch (Exception ex) { WriteTrace( Area.EPMLiveCore, Categories.EPMLiveCore.TimerJob, TraceSeverity.High, string.Format("StackTrace-{0}{1}Message-{2}", ex.StackTrace, Environment.NewLine, ex.Message)); if (ex.Message != "Value does not fall within the expected range.") { result.ErrorMessages.Add(ex.Message); } } }