示例#1
0
        public void TestHugAction()
        {
            var tama = new Database.Tamagotchi
            {
                Id      = 1,
                Name    = "Kevin",
                Sleep   = 30,
                Health  = 30,
                Hunger  = 30,
                Boredom = 30
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            _service.ToggleRule("sleep");
            _service.ToggleRule("boredom");
            _service.ToggleRule("hunger");

            _service.DoAction("hug");

            Thread.Sleep(4000);

            var newTama = _service.GetCurrentTamagotchi();

            Assert.AreEqual(40, newTama.Health);
            Assert.AreEqual(20, newTama.Sleep);
            Assert.AreEqual(20, newTama.Hunger);
            Assert.AreEqual(20, newTama.Boredom);
        }
示例#2
0
        public void TestPlayAction()
        {
            var tama = new Database.Tamagotchi
            {
                Id      = 1,
                Name    = "Kevin",
                Sleep   = 30,
                Health  = 30,
                Hunger  = 50,
                Boredom = 40
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            _service.ToggleRule("sleep");
            _service.ToggleRule("boredom");
            _service.ToggleRule("hunger");

            _service.DoAction("play");

            Thread.Sleep(9000);

            var newTama = _service.GetCurrentTamagotchi();

            Assert.IsTrue(newTama.Health == 30 || newTama.Health == 20);
            Assert.AreEqual(5, newTama.Boredom);
        }
示例#3
0
        public void TestSleepAction()
        {
            var tama = new Database.Tamagotchi
            {
                Id     = 1,
                Name   = "Kevin",
                Sleep  = 30,
                Health = 10
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            _service.ToggleRule("sleep");

            _service.DoAction("sleep");

            Thread.Sleep(16000);

            var newTama = _service.GetCurrentTamagotchi();

            Assert.AreEqual(20, newTama.Health);
            Assert.AreEqual(5, newTama.Sleep);
        }
示例#4
0
        public Tamagotchi(Database.Tamagotchi tamagotchi)
        {
            Statuses = new List <string>();

            Id      = tamagotchi.Id;
            Name    = tamagotchi.Name;
            Age     = tamagotchi.Age;
            Hunger  = tamagotchi.Hunger;
            Sleep   = tamagotchi.Sleep;
            Boredom = tamagotchi.Boredom;
            Health  = tamagotchi.Health;
        }
示例#5
0
        public void TestActiveGameRulesWrongAction()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Assert.IsFalse(_service.ToggleRule("toilet-time"));
        }
示例#6
0
        public void TestSwitchTamagotchi()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            Assert.IsTrue(_service.SwitchTamagotchi(1));

            Assert.AreEqual(1, _service.GetCurrentTamagotchi().Id);
        }
示例#7
0
        public void TestActiveGameRules()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Assert.AreEqual(8, _service.ActiveGameRules().Count);
        }
示例#8
0
        public void TestCantRun2Actions()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Assert.IsTrue(_service.DoAction("sleep"));

            Assert.IsFalse(_service.DoAction("sleep"));
        }
示例#9
0
        public void TestDoWrongAction()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Assert.IsFalse(_service.DoAction("toilet-time"));

            Assert.IsNull(_service.GetCurrentAction());
        }
示例#10
0
        public void TestDoAction()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Assert.IsTrue(_service.DoAction("sleep"));

            Assert.IsNotNull(_service.GetCurrentAction());
        }
示例#11
0
        public void TestDismissTamagotchi()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Assert.IsTrue(_service.DismissTamagotchi());

            Assert.IsNull(_service.GetCurrentTamagotchi());
        }
示例#12
0
        public void TestIsCurrentlyRunningAction()
        {
            var tama = new Database.Tamagotchi
            {
                Id   = 1,
                Name = "Kevin"
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Assert.IsFalse(_service.IsCurrentlyRunningAnAction());

            _service.DoAction("sleep");

            Assert.IsTrue(_service.IsCurrentlyRunningAnAction());
        }
示例#13
0
        public void TestTamagotchiCanDie()
        {
            var tama = new Database.Tamagotchi
            {
                Id      = 1,
                Name    = "Kevin",
                Sleep   = 100,
                Health  = 10,
                Hunger  = 100,
                Boredom = 100
            };

            _repo.AddOrUpdate(tama);

            _service.SwitchTamagotchi(1);

            Thread.Sleep(11000);

            Assert.IsTrue(_service.GetCurrentTamagotchi().Deceased);
        }