Beispiel #1
0
        public Battery(BatteryMethod batteryMethod)
        {
            this.ChargeLevel = 100;
            ChargeLevelLock  = new object();

            Factory            = new BatteryFactory();
            this.BatteryMethod = batteryMethod;

            this.BatteryConsuming           = Factory.CreateBatteryChange(this.BatteryMethod);
            BatteryConsuming.BatteryChange += OnBatteryConsuming;
        }
Beispiel #2
0
        public void TestBatteryLevelMin(BatteryMethod method)
        {
            //-- Arrange
            var btr      = new Battery(method);
            var expected = 0;

            //-- Act;
            btr.OnBatteryConsuming(200);
            var actual = btr.ChargeLevel;

            //-- Assert
            Assert.AreEqual(expected, actual);
            btr.Dispose();
        }
Beispiel #3
0
        private void TestBatteryLevelDecreaseChargeLevel(BatteryMethod method)
        {
            //-- Arrange
            var btr      = new Battery(method);
            var expected = 90;

            //-- Act;
            btr.Start();
            Thread.Sleep(TimeSpan.FromSeconds(6));
            var actual = btr.ChargeLevel;

            //-- Assert
            Assert.IsTrue(expected >= actual);
            btr.Dispose();
        }
Beispiel #4
0
        public void TestBatteryLevelMax(BatteryMethod method)
        {
            //-- Arrange
            var btr      = new Battery(method);
            var expected = 100;

            //-- Act;
            btr.AttachCharger();
            btr.OnBatteryCharger(200);
            var actual = btr.ChargeLevel;

            btr.DettachCharger();

            //-- Assert
            Assert.AreEqual(expected, actual);
            btr.Dispose();
        }
Beispiel #5
0
        public virtual IBatteryChange CreateBatteryChange(BatteryMethod method)
        {
            IBatteryChange battery = null;

            switch (method)
            {
            case BatteryMethod.Tasks:
                battery = new BatteryChangeTask();
                break;

            case BatteryMethod.Threads:
                battery = new BatteryChangeThread();
                break;

            case BatteryMethod.ThreadTimer:
                battery = new BatteryChangeThreadTimer();
                break;
            }

            return(battery);
        }