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"]);
        }
Пример #4
0
        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"]);
        }
Пример #5
0
        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"]);
        }