public void GetQuarterStartEnd_Valid_Date2_User_Local() { //Arrange XrmFakedWorkflowContext workflowContext = new XrmFakedWorkflowContext(); EntityCollection userSettings = new EntityCollection(); Entity userSetting = new Entity("usersettings") { Id = Guid.NewGuid(), ["systemuserid"] = Guid.NewGuid(), ["timezonecode"] = 20 }; userSettings.Entities.Add(userSetting); var inputs = new Dictionary <string, object> { { "DateToUse", new DateTime(2015, 2, 1, 10, 0, 0, DateTimeKind.Utc) }, { "EvaluateAsUserLocal", true } }; XrmFakedContext xrmFakedContext = new XrmFakedContext(); xrmFakedContext.Initialize(new List <Entity> { userSetting }); xrmFakedContext.CallerId = new EntityReference("systemuser", userSetting.GetAttributeValue <Guid>("systemuserid")); var fakeLocalTimeFromUtcTimeRequestExecutor = new FakeLocalTimeFromUtcTimeRequestExecutor(new DateTime(2015, 2, 1, 4, 0, 0)); xrmFakedContext.AddFakeMessageExecutor <LocalTimeFromUtcTimeRequest>(fakeLocalTimeFromUtcTimeRequestExecutor); DateTime expected1 = new DateTime(2015, 1, 1, 0, 0, 0); DateTime expected2 = new DateTime(2015, 3, 31, 23, 59, 59, 999); //Act var result = xrmFakedContext.ExecuteCodeActivity <GetQuarterStartEnd>(workflowContext, inputs); //Assert Assert.AreEqual(expected1, result["QuarterStartDate"]); Assert.AreEqual(expected2, result["QuarterEndDate"]); }
public void IsSameDay_Not_Same_Day1_User_Local() { //Arrange XrmFakedWorkflowContext workflowContext = new XrmFakedWorkflowContext(); EntityCollection userSettings = new EntityCollection(); Entity userSetting = new Entity("usersettings") { Id = Guid.NewGuid(), ["systemuserid"] = Guid.NewGuid(), ["timezonecode"] = 20 }; userSettings.Entities.Add(userSetting); var inputs = new Dictionary <string, object> { { "FirstDate", new DateTime(2015, 5, 2, 11, 36, 0) }, { "SecondDate", new DateTime(2015, 5, 1, 16, 49, 23) }, { "EvaluateAsUserLocal", true } }; XrmFakedContext xrmFakedContext = new XrmFakedContext(); xrmFakedContext.Initialize(new List <Entity> { userSetting }); xrmFakedContext.CallerId = new EntityReference("systemuser", userSetting.GetAttributeValue <Guid>("systemuserid")); var fakeLocalTimeFromUtcTimeRequestExecutor = new FakeLocalTimeFromUtcTimeRequestExecutor(new DateTime(2015, 5, 2, 5, 36, 0), new DateTime(2015, 5, 1, 11, 49, 23)); xrmFakedContext.AddFakeMessageExecutor <LocalTimeFromUtcTimeRequest>(fakeLocalTimeFromUtcTimeRequestExecutor); const bool expected = false; //Act var result = xrmFakedContext.ExecuteCodeActivity <IsSameDay>(workflowContext, inputs); //Assert Assert.AreEqual(expected, result["SameDay"]); }
public void IsBusinessDay_Week_Day_User_Local() { //Arrange XrmFakedWorkflowContext workflowContext = new XrmFakedWorkflowContext(); EntityCollection userSettings = new EntityCollection(); Entity userSetting = new Entity("usersettings") { Id = Guid.NewGuid(), ["systemuserid"] = Guid.NewGuid(), ["timezonecode"] = 20 }; userSettings.Entities.Add(userSetting); var inputs = new Dictionary <string, object> { { "DateToCheck", new DateTime(2015, 5, 13, 3, 48, 0, 0) }, { "HolidayClosureCalendar", null }, { "EvaluateAsUserLocal", true } }; XrmFakedContext xrmFakedContext = new XrmFakedContext(); xrmFakedContext.Initialize(new List <Entity> { userSetting }); xrmFakedContext.CallerId = new EntityReference("systemuser", userSetting.GetAttributeValue <Guid>("systemuserid")); var fakeLocalTimeFromUtcTimeRequestExecutor = new FakeLocalTimeFromUtcTimeRequestExecutor(new DateTime(2015, 5, 12, 9, 48, 0, 0)); xrmFakedContext.AddFakeMessageExecutor <LocalTimeFromUtcTimeRequest>(fakeLocalTimeFromUtcTimeRequestExecutor); const bool expected = true; //Act var result = xrmFakedContext.ExecuteCodeActivity <IsBusinessDay>(workflowContext, inputs); //Assert Assert.AreEqual(expected, result["ValidBusinessDay"]); }
public void GetFormattedDateString_2_Digit_24_Hour_Time_Only_User_Local() { //Arrange XrmFakedWorkflowContext workflowContext = new XrmFakedWorkflowContext(); EntityCollection userSettings = new EntityCollection(); Entity userSetting = new Entity("usersettings") { Id = Guid.NewGuid(), ["systemuserid"] = Guid.NewGuid(), ["timezonecode"] = 20 }; userSettings.Entities.Add(userSetting); var inputs = new Dictionary <string, object> { { "DateToUse", new DateTime(2015, 1, 1, 5, 15, 20, DateTimeKind.Utc) }, { "EvaluateAsUserLocal", true }, { "Format", "HH:mm" } }; XrmFakedContext xrmFakedContext = new XrmFakedContext(); xrmFakedContext.Initialize(new List <Entity> { userSetting }); xrmFakedContext.CallerId = new EntityReference("systemuser", userSetting.GetAttributeValue <Guid>("systemuserid")); var fakeLocalTimeFromUtcTimeRequestExecutor = new FakeLocalTimeFromUtcTimeRequestExecutor(); xrmFakedContext.AddFakeMessageExecutor <LocalTimeFromUtcTimeRequest>(fakeLocalTimeFromUtcTimeRequestExecutor); const string expected = "23:15"; //Act var result = xrmFakedContext.ExecuteCodeActivity <GetFormattedDateString>(workflowContext, inputs); //Assert Assert.AreEqual(expected, result["FormattedDateString"]); }
public void GetWeekNumberOfYear_Valid_Week_User_Local1() { //Arrange XrmFakedWorkflowContext workflowContext = new XrmFakedWorkflowContext(); EntityCollection userSettings = new EntityCollection(); Entity userSetting = new Entity("usersettings") { Id = Guid.NewGuid(), ["systemuserid"] = Guid.NewGuid(), ["timezonecode"] = 20 }; userSettings.Entities.Add(userSetting); var inputs = new Dictionary <string, object> { { "DateToUse", new DateTime(2015, 1, 1, 5, 0, 0, DateTimeKind.Utc) }, { "EvaluateAsUserLocal", true } }; XrmFakedContext xrmFakedContext = new XrmFakedContext(); xrmFakedContext.Initialize(new List <Entity> { userSetting }); xrmFakedContext.CallerId = new EntityReference("systemuser", userSetting.GetAttributeValue <Guid>("systemuserid")); var fakeLocalTimeFromUtcTimeRequestExecutor = new FakeLocalTimeFromUtcTimeRequestExecutor(new DateTime(2014, 12, 31, 23, 0, 0)); xrmFakedContext.AddFakeMessageExecutor <LocalTimeFromUtcTimeRequest>(fakeLocalTimeFromUtcTimeRequestExecutor); const int expected = 53; //Act var result = xrmFakedContext.ExecuteCodeActivity <GetWeekNumberOfYear>(workflowContext, inputs); //Assert Assert.AreEqual(expected, result["WeekNumberOfYear"]); }
public void IsBusinessDay_Week_Day_Holiday_User_Local() { //Arrange XrmFakedWorkflowContext workflowContext = new XrmFakedWorkflowContext(); EntityCollection userSettings = new EntityCollection(); Entity userSetting = new Entity("usersettings") { Id = Guid.NewGuid(), ["systemuserid"] = Guid.NewGuid(), ["timezonecode"] = 20 }; userSettings.Entities.Add(userSetting); EntityCollection calendarRules = new EntityCollection(); Entity calendarRule = new Entity { LogicalName = "calendarRule", Id = Guid.NewGuid(), Attributes = new AttributeCollection() }; calendarRule.Attributes.Add("name", "4th of July"); calendarRule.Attributes.Add("starttime", new DateTime(2014, 7, 4, 0, 0, 0)); calendarRule.Attributes.Add("duration", 1440); calendarRules.Entities.Add(calendarRule); Entity holidayCalendar = new Entity { Id = new Guid("e9717a91-ba0a-e411-b681-6c3be5a8ad70"), LogicalName = "calendar", Attributes = new AttributeCollection() }; holidayCalendar.Attributes.Add("name", "Main Holiday Schedule"); holidayCalendar.Attributes.Add("calendarrules", calendarRules); var inputs = new Dictionary <string, object> { { "DateToCheck", new DateTime(2014, 7, 4, 8, 48, 0, 0) }, { "HolidayClosureCalendar", new EntityReference { LogicalName = "calendar", Id = new Guid("e9717a91-ba0a-e411-b681-6c3be5a8ad70") } }, { "EvaluateAsUserLocal", true } }; XrmFakedContext xrmFakedContext = new XrmFakedContext(); xrmFakedContext.Initialize(new List <Entity> { userSetting, calendarRule, holidayCalendar }); xrmFakedContext.CallerId = new EntityReference("systemuser", userSetting.GetAttributeValue <Guid>("systemuserid")); var fakeLocalTimeFromUtcTimeRequestExecutor = new FakeLocalTimeFromUtcTimeRequestExecutor(new DateTime(2014, 7, 4, 2, 48, 0, 0)); xrmFakedContext.AddFakeMessageExecutor <LocalTimeFromUtcTimeRequest>(fakeLocalTimeFromUtcTimeRequestExecutor); const bool expected = false; //Act var result = xrmFakedContext.ExecuteCodeActivity <IsBusinessDay>(workflowContext, inputs); //Assert Assert.AreEqual(expected, result["ValidBusinessDay"]); }