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; }
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(); }
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(); }
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(); }
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); }