public void Test_Sleep_ShelterAvailable()
        {
            Console.WriteLine("");
            Console.WriteLine("Preparing test");
            Console.WriteLine("");

            var context = MockEngineContext.New();

            context.World.Logic.AddActivity(typeof(DrinkWaterActivity));

            var settings = context.Settings;

            var person = new Person(settings);

            person.Vitals[PersonVitalType.Energy] = 0;

            person.Home = new Building(BuildingType.Shelter, settings);
            person.Home.PercentComplete = 100;

            var needEntry = new NeedEntry(ActivityVerb.Sleep, ItemType.NotSet, PersonVitalType.Energy, 100, settings.DefaultVitalPriorities[PersonVitalType.Energy]);

            var activity = new SleepActivity(person, needEntry, settings, new ConsoleHelper(settings));

            Console.WriteLine("");
            Console.WriteLine("Executing test");
            Console.WriteLine("");

            activity.Act(person);

            Console.WriteLine("");
            Console.WriteLine("Analysing test");
            Console.WriteLine("");

            Assert.AreEqual(settings.EnergyFromSleepRate, person.Vitals[PersonVitalType.Energy]);
        }
示例#2
0
        public static SleepActivityViewModel AsViewModel(this SleepActivity model, Baby baby = null)
        {
            if (model == null)
            {
                return(null);
            }

            var startDate = model.StartTime.ToLocalTime();

            return(new SleepActivityViewModel
            {
                Id = model.Id,
                StartDate = startDate,
                StartTime = startDate.TimeOfDay,
                EndTime = model.EndTime.HasValue
                            ? model.EndTime.Value.ToLocalTime()
                            : (DateTimeOffset?)null,
                Duration = model.EndTime.HasValue
                            ? model.EndTime.Value - model.StartTime
                            : DateTimeOffset.Now - model.StartTime,
                Notes = model.Notes,
                HowBabyFelt = (Feeling?)model.HowBabyFelt,
                HowParentFelt = (Feeling?)model.HowParentFelt,
                Baby = baby != null?baby.AsViewModel() : new BabyViewModel
                {
                    Id = model.BabyId
                }
            });
        }
        public void Test_Sleep_ShelterAvailable()
        {
            Console.WriteLine ("");
            Console.WriteLine ("Preparing test");
            Console.WriteLine ("");

            var context = MockEngineContext.New ();

            context.World.Logic.AddActivity (typeof(DrinkWaterActivity));

            var settings = context.Settings;

            var person = new Person (settings);
            person.Vitals[PersonVitalType.Energy] = 0;

            person.Home = new Building (BuildingType.Shelter, settings);
            person.Home.PercentComplete = 100;

            var needEntry = new NeedEntry (ActivityVerb.Sleep, ItemType.NotSet, PersonVitalType.Energy, 100, settings.DefaultVitalPriorities[PersonVitalType.Energy]);

            var activity = new SleepActivity (person, needEntry, settings, new ConsoleHelper(settings));

            Console.WriteLine ("");
            Console.WriteLine ("Executing test");
            Console.WriteLine ("");

            activity.Act (person);

            Console.WriteLine ("");
            Console.WriteLine ("Analysing test");
            Console.WriteLine ("");

            Assert.AreEqual(settings.EnergyFromSleepRate, person.Vitals[PersonVitalType.Energy]);
        }
        public Activity Parse(XElement inputElement)
        {
            var activity = new SleepActivity();

            activity.Name = inputElement.Attribute("name").Value;
            activity.Type = (ActivityType)inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "type").Value;

            if (inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings") != null && inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings").Element(XmlnsConstant.sleeptibcoActivityNameSpace + "SleepInputSchema") != null)
            {
                activity.InputBindings = inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings").Element(XmlnsConstant.sleeptibcoActivityNameSpace + "SleepInputSchema").Nodes();
                activity.Parameters    = new XslParser().Parse(activity.InputBindings);
            }
            return(activity);
        }
示例#5
0
 public static SleepActivityViewModel AsViewModel(this SleepActivity model, Baby baby = null)
 {
     return(new SleepActivityViewModel
     {
         Id = model.Id,
         StartTime = model.StartTime,
         EndTime = model.EndTime,
         Duration = model.EndTime.HasValue
                     ? Convert.ToInt32((model.StartTime - model.EndTime.Value).TotalMinutes) : 0,
         Notes = model.Notes,
         HowBabyFelt = model.HowBabyFelt,
         HowParentFelt = model.HowParentFelt,
         Baby = baby != null?baby.AsViewModel() : new BabyViewModel
         {
             Id = model.BabyId
         }
     });
 }
        public void SetUp()
        {
            this.activityBuilder = new SleepActivityBuilder(new XslBuilder(new XpathBuilder()));
            this.activity        = new SleepActivity("MyActivityName", ActivityType.sleepActivity);
            var xml =
                @"<ns1:SleepInputSchema xmlns:xsl=""http://w3.org/1999/XSL/Transform"" xmlns:ns1=""www.tibco.com/plugin/Sleep"">
        <IntervalInMillisec>
            <xsl:value-of select=""3000""/>
        </IntervalInMillisec>
    </ns1:SleepInputSchema>
";
            XElement doc = XElement.Parse(xml);

            this.activity.InputBindings = doc.Nodes();
            this.activity.Parameters    = new List <ClassParameter> {
                new ClassParameter {
                    Name = "IntervalInMillisec",
                    Type = "int"
                }
            };
        }
 public static Activity GetSleep()
 {
     return(SleepActivity.GetInstance());
 }