public BatteryCharger GetBatteryCharger(BatteryChargerType type, int value) { switch (type) { case BatteryChargerType.THREAD: return(new BatteryChargerThread(value)); case BatteryChargerType.TASK: return(new BatteryChargerTask(value)); default: throw new NotSupportedException($"{type.ToString()} is not supported yet."); } }
private void TestThatBatteryChargeLevelIncreasedWhenChargerIsConnected(BatteryChargerType type) { int value = _battery.ChargeLevel; _discharger.Start(); BatteryCharger charger = BatteryChargerFactory.Instance().GetBatteryCharger(type, CHARGE_VALUE); charger.Charge += _battery.IncreaseChargeLevel; charger.Start(); Thread.Sleep(Convert.ToInt32(Math.Max(_discharger.DischargePeriod * 1.1, charger.ChargePeriod * 1.1))); if (Math.Abs(DISCHARGE_VALUE) / _discharger.DischargePeriod >= CHARGE_VALUE / charger.ChargePeriod) { Assert.True(value >= _battery.ChargeLevel); } else { Assert.True(value < _battery.ChargeLevel); } }