Beispiel #1
0
        static void Main(string[] args)
        {
            var liquids = new List <ILiquid>()
            {
                new Liquid("Water"), new Liquid("Fuel")
            };
            var liquidProvider = new LiquidProvider(liquids);

            var energies = new List <IEnergy>()
            {
                new Energy("Electricity"), new Energy("SomethingElse")
            };
            var energyProvider = new EnergyProvider(energies);

            var regularKettle  = new RegularKettle();
            var electricKettle = new ElectricKettle();

            var capacity = new CapacityUnit(100);
            var utensil  = new Utensil("Kettle", capacity);
            var boiler   = new Boiler("Кипятильник");

            regularKettle.Utensil = utensil;
            regularKettle.Boiler  = boiler;
            regularKettle.WorksOn = energies;

            electricKettle.Utensil = utensil;
            electricKettle.Boiler  = boiler;
            electricKettle.WorksOn = energies;

            var regularKettleRunner  = new Runner.Runner(liquidProvider, energyProvider, regularKettle);
            var electricKettleRunner = new Runner.Runner(liquidProvider, energyProvider, electricKettle);
        }
Beispiel #2
0
        public Functions()
        {
            InitializeComponent();

            BackButtonBitmap = new Bitmap(Program.BackIm, new Size(Functions_Back_Button.Bounds.Width - 30, Functions_Back_Button.Bounds.Height - 5));


            BoilerForm = new Boiler();
            this.Function_Panel.Controls.Add(this.BoilerForm);
            Functions_Back_Button.FlatAppearance.MouseOverBackColor = Color.Transparent;

            AntiFreezeForm = new Anti_Freeze();
            this.Function_Panel.Controls.Add(this.AntiFreezeForm);
            Functions_Back_Button.FlatAppearance.MouseOverBackColor = Color.Transparent;

            SommerWinterForm = new Sommer_Winter();
            this.Function_Panel.Controls.Add(this.SommerWinterForm);
            Functions_Back_Button.FlatAppearance.MouseOverBackColor = Color.Transparent;

            TagNachtForm = new Tag_Nacht();
            this.Function_Panel.Controls.Add(this.TagNachtForm);
            Functions_Back_Button.FlatAppearance.MouseOverBackColor = Color.Transparent;

            //Thread CheckForUpdates = new Thread(new ThreadStart(ChangeValuesOnButtons));
            //CheckForUpdates.IsBackground = true;
            //CheckForUpdates.Priority = ThreadPriority.Lowest;
            //CheckForUpdates.Start();


            this.Visible   = false;
            this.BackColor = Color.Transparent;
            this.Dock      = DockStyle.Fill;
        }
Beispiel #3
0
        private void HolderDelegate(CachingViewHolder holder, Boiler item, int index)
        {
            holder.FindCachedViewById <TextView>(Resource.Id.NameTextView).Text     = item.Name;
            holder.FindCachedViewById <TextView>(Resource.Id.MetaDataTextView).Text =
                $"{GetString(Resource.String.NumberOfMeasurments)} {item.Count}\n" +
                $"{GetString(Resource.String.CreatedAt)} {item.DateCreated.ToShortDateString()}";

            var button = holder.FindCachedViewById <ImageView>(Resource.Id.DeleteButton);

            if (!button.HasOnClickListeners)
            {
                button.Click += (s, e) =>
                {
                    var position = holder.AdapterPosition;
                    new AlertDialog.Builder(Context)
                    .SetTitle(GetString(Resource.String.Delete))
                    .SetMessage($"{GetString(Resource.String.DeleteBoilerQ)} {VM.Boilers[position].Name}?")
                    .SetPositiveButton(GetString(Resource.String.Yes), (s1, e1) => VM.DeleteBoiler(VM.Boilers[position]))
                    .SetNegativeButton(GetString(Resource.String.No), (s1, e1) => { })
                    .Create()
                    .Show();
                }
            }
            ;
        }
Beispiel #4
0
 // Use to process your families.
 protected override void onProcess(int familiesUpdateCount)
 {
     if (Input.GetMouseButtonDown(0))
     {
         // Only one GO could be under pointer
         GameObject boiler_go = boilers.First();
         if (boiler_go != null)
         {
             // Check if the hero is near to the boiler (only hero can produce this component thanks to Unity Physics layers)
             Triggered3D triggered = boiler_go.GetComponent <Triggered3D> ();
             if (triggered != null)
             {
                 ComponentMonitoring cm = boiler_go.GetComponent <ComponentMonitoring> ();
                 Boiler boiler          = boiler_go.GetComponent <Boiler> ();
                 if (boiler.isOn)
                 {
                     MonitoringManager.trace(cm, "turnOff", MonitoringManager.Source.PLAYER);
                 }
                 else
                 {
                     MonitoringManager.trace(cm, "turnOn", MonitoringManager.Source.PLAYER);
                 }
                 // Check if boiler is on OR boiler is not constrained OR the constraint is ok
                 if (boiler.isOn || boiler.constraint == null || boiler.constraint.activeInHierarchy)
                 {
                     Animator anim = boiler_go.GetComponent <Animator> ();
                     boiler.isOn = !boiler.isOn;
                     anim.SetBool("isOn", boiler.isOn);
                 }
             }
         }
     }
 }
Beispiel #5
0
        public Boiler Update(Boiler obj)
        {
            BoilerBO boilerBO = new BoilerBO(obj);

            boilerDao.Update(boilerBO);
            return(obj);
        }
        public void ConstructorSetsCorrect_IsElementOn(bool IsElementOn, bool IsPumpOn, bool IsBurstOn, bool IsAuto, decimal TargetTemp, decimal TempOffset, decimal ActualTemp, bool Expected)
        {
            Boiler       b  = new Boiler(IsElementOn, IsPumpOn, IsBurstOn, IsAuto, TargetTemp, TempOffset, ActualTemp);
            BoilerStatus bs = new BoilerStatus(b);

            Assert.Equal(bs.IsElementOn, Expected);
        }
    // Update is called once per frame
    void Update()
    {
        double steamUnits = 0;

        GameObject[] neighbors = GetNeighbors();
        foreach (GameObject obj in neighbors)
        {
            if (obj.GetComponent <Tile>().GetType() == typeof(Boiler))
            {
                Boiler b     = obj.GetComponent <Boiler>();
                double avail = b.GetAvailableSteam();
                if (avail <= maxSteam - steam && avail > 0)
                {
                    steamUnits += avail;
                    b.UseSteam(avail);
                }
                else if (avail > 0)
                {
                    steamUnits += maxSteam - steam;
                    b.UseSteam(maxSteam - steam);
                }
                // Debug.Log("Steam: " + steam + " / " + maxSteam);
            }
        }
        steam     += steamUnits;
        kwProduced = steam * kwPerSteamUnit * generatorEfficiency;
    }
Beispiel #8
0
 public static void DeleteBoiler(Boiler boiler)
 {
     foreach (var measurement in boiler.Measurments)
     {
         MeasurementManager.DeleteMeasurement(measurement);
     }
     SQL.Db.Delete <Boiler>(boiler.Id);
 }
        public void FillBoilerAndPushButtonStartsBoiler(
            [Frozen] Mock <ICoffeeMaker> hardwareMock,
            Boiler sut)
        {
            sut.OnNext(BoilerStatus.NOT_EMPTY);
            sut.OnNext(BrewButtonStatus.PUSHED);

            hardwareMock.Verify(hw => hw.SetBoilerState(BoilerState.ON));
        }
Beispiel #10
0
        public BoilerDetailsViewModel(Boiler boiler)
        {
            Boiler = boiler;

            Messenger.Default.Send(new TitleMessage(boiler.Name));

            AddMeasurmentCommand = new RelayCommand <Measurment>(AddMeasurment, CanAddMeasurment);
            AddTemplateCommand   = new RelayCommand <List <string> >(AddTemplate, CanAddTemplate);
        }
        public void NotEmptyDoesNotTurnOffBoiler(
            [Frozen] Mock <ICoffeeMaker> hardwareMock,
            Boiler sut)
        {
            sut.OnNext(BoilerStatus.NOT_EMPTY);

            hardwareMock.Verify(
                hw => hw.SetBoilerState(BoilerState.OFF),
                Times.Never());
        }
        public void FillBoilerWithoutPushingButtonDoesNotTurnOnBoiler(
            [Frozen] Mock <ICoffeeMaker> hardwareMock,
            Boiler sut)
        {
            sut.OnNext(BoilerStatus.NOT_EMPTY);

            hardwareMock.Verify(
                hw => hw.SetBoilerState(BoilerState.ON),
                Times.Never());
        }
        public void EmptyBoilerTurnsOffBoiler(
            [Frozen] Mock <ICoffeeMaker> hardwareMock,
            Boiler sut)
        {
            sut.OnNext(BoilerStatus.NOT_EMPTY);
            sut.OnNext(BrewButtonStatus.PUSHED);
            sut.OnNext(BoilerStatus.EMPTY);

            hardwareMock.Verify(hw => hw.SetBoilerState(BoilerState.OFF));
        }
        public void PushButtonWithUnknownBoilerStatusDoesNotStartsBoiler(
            [Frozen] Mock <ICoffeeMaker> hardwareMock,
            Boiler sut)
        {
            sut.OnNext(BrewButtonStatus.PUSHED);

            hardwareMock.Verify(
                hw => hw.SetBoilerState(BoilerState.ON),
                Times.Never());
        }
        public void NoButtonPushWithWaterInBoilerDoesNotStartsBoiler(
            [Frozen] Mock <ICoffeeMaker> hardwareMock,
            Boiler sut)
        {
            sut.OnNext(BoilerStatus.NOT_EMPTY);
            sut.OnNext(BrewButtonStatus.NOT_PUSHED);

            hardwareMock.Verify(
                hw => hw.SetBoilerState(BoilerState.ON),
                Times.Never());
        }
Beispiel #16
0
 private bool CanCreateBoiler(Boiler boiler)
 {
     if (boiler == null || boiler.Name == "" || boiler.Name == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
        public void WhenCallingPutTheBoilerIsRetreived(bool IsElementOn, bool IsPumpOn, bool IsBurstOn, bool IsAuto, decimal TargetTemp, decimal TempOffset, decimal ActualTemp)
        {
            MockRepository repo = new MockRepository();
            Boiler boilerIn = new Boiler(IsElementOn, IsPumpOn, IsBurstOn, IsAuto, TargetTemp, TempOffset, ActualTemp);

            BoilerController controller = new BoilerController(repo);

            Boiler boilerOut = controller.Put(boilerIn);

            Assert.Equal(boilerIn, boilerOut);
        }
Beispiel #18
0
        public void WhenCallingPutTheBoilerIsRetreived(bool IsElementOn, bool IsPumpOn, bool IsBurstOn, bool IsAuto, decimal TargetTemp, decimal TempOffset, decimal ActualTemp)
        {
            MockRepository repo     = new MockRepository();
            Boiler         boilerIn = new Boiler(IsElementOn, IsPumpOn, IsBurstOn, IsAuto, TargetTemp, TempOffset, ActualTemp);

            BoilerController controller = new BoilerController(repo);

            Boiler boilerOut = controller.Put(boilerIn);

            Assert.Equal(boilerIn, boilerOut);
        }
        public void WhenCallingPostTheBoilerIsSaved(bool IsElementOn, bool IsPumpOn, bool IsBurstOn, bool IsAuto, decimal TargetTemp, decimal TempOffset, decimal ActualTemp)
        {
            MockRepository repo = new MockRepository();
            Boiler boilerIn = new Boiler(IsElementOn, IsPumpOn, IsBurstOn, IsAuto, TargetTemp, TempOffset, ActualTemp);

            BoilerController controller = new BoilerController(repo);

             controller.Post(boilerIn);

            Boiler boilerSaved = (Boiler)repo.Retrieve();

            Assert.Equal(boilerIn, boilerSaved);
        }
 public void OnErrorDoesNotThrowNotImplementedException(
     Boiler sut,
     Exception e)
 {
     try
     {
         sut.OnError(e);
     }
     catch (NotImplementedException)
     {
         Assert.True(false, "NotImplementedException thrown.");
     }
 }
Beispiel #21
0
        public void WhenCallingPostTheBoilerIsSaved(bool IsElementOn, bool IsPumpOn, bool IsBurstOn, bool IsAuto, decimal TargetTemp, decimal TempOffset, decimal ActualTemp)
        {
            MockRepository repo     = new MockRepository();
            Boiler         boilerIn = new Boiler(IsElementOn, IsPumpOn, IsBurstOn, IsAuto, TargetTemp, TempOffset, ActualTemp);

            BoilerController controller = new BoilerController(repo);

            controller.Post(boilerIn);

            Boiler boilerSaved = (Boiler)repo.Retrieve();

            Assert.Equal(boilerIn, boilerSaved);
        }
        public void WhenBurstIntervalHasElapsed_EnableElement_UnlessBurstIsOff()
        {
            Boiler b = new Boiler();

            b.BurstTime     = 100;
            b.BurstInterval = 10;
            b.IsElementOn   = true;
            b.IsBurstOn     = false;

            bool ret = b.BurstCycleOn(DateTime.Now.AddSeconds(11));

            Assert.False(ret);
            Assert.True(b.IsElementOn);
        }
        public void WhenBurstTimeHasNotElapsed_DoNotDisableElement_WhenAutoOn()
        {
            Boiler b = new Boiler();
            b.BurstTime = 10;
            b.BurstInterval = 100;
            b.IsElementOn = true;
            b.IsBurstOn = true;
            b.IsAuto = true;

            bool ret = b.BurstCycleOff(DateTime.Now.AddSeconds(5));

            Assert.False(ret);
            Assert.True(b.IsElementOn);
        }
        public void WhenActualTemp_IsGreaterThanOrEqualToTargetAndElementIsOnAndIsAutoTrue_DisableElement(decimal target, decimal actual, bool isAuto, bool expected)
        {
            IBoiler boiler = new Boiler();

            boiler.TargetTemp  = target;
            boiler.ActualTemp  = actual;
            boiler.IsElementOn = true;
            boiler.IsAuto      = isAuto;

            //BoilerUtils utils = new BoilerUtils();
            bool ret = boiler.DisableOnHighTemp();

            Assert.Equal(boiler.IsElementOn, expected);
        }
Beispiel #25
0
    public void btnSaveB_Click(object sender, EventArgs e)
    {
        BoilerService productCapacityService = new BoilerService();
        Boiler        productCapacity        = new Boiler();

        productCapacity.BoilerName = txtDeviceNameB.Text.Trim();
        if (txtQuantityB.Text.Trim() != "")
        {
            productCapacity.Quantity = Convert.ToInt32(txtQuantityB.Text.Trim());
        }
        if (txtHoursB.Text.Trim() != "")
        {
            productCapacity.OperationHours = Convert.ToInt32(txtHoursB.Text.Trim());
        }
        if (txtCapacityB.Text.Trim() != "")
        {
            productCapacity.CapacityInstalled = Convert.ToDecimal(txtCapacityB.Text.Trim());
        }
        if (ddlFuelB.SelectedIndex > 0)
        {
            productCapacity.FuelId = Convert.ToInt32(ddlFuelB.SelectedValue);
        }
        productCapacity.AuditReportId = ReportId;

        int i = 0;

        if (hdnId.Value != "" && Convert.ToInt32(hdnId.Value) > 0)
        {
            productCapacity.Id = Convert.ToInt32(hdnId.Value);
            productCapacity    = productCapacityService.Update(productCapacity);
            if (productCapacity != null)
            {
                i = 1;
            }
        }
        else
        {
            i = productCapacityService.Insert(productCapacity);
        }
        if (i <= 0)
        {
            ScriptManager.RegisterStartupScript(this, GetType(), "showgpkh", "ShowDialogCompress(" + hdnId.Value + ");", true);
            ScriptManager.RegisterStartupScript(this, GetType(), "message", "alert('Cập nhật không thành công. Vui lòng thử lại!');", true);
        }
        else
        {
            BindBoiler();
        }
    }
        public void WhenBurstTimeHasNotElapsed_DoNotDisableElement_WhenAutoOn()
        {
            Boiler b = new Boiler();

            b.BurstTime     = 10;
            b.BurstInterval = 100;
            b.IsElementOn   = true;
            b.IsBurstOn     = true;
            b.IsAuto        = true;

            bool ret = b.BurstCycleOff(DateTime.Now.AddSeconds(5));

            Assert.False(ret);
            Assert.True(b.IsElementOn);
        }
        public void When_DisableOnHighTemp_DisablesTheElement_TheLastOffDateIsSet()
        {
            Boiler  b      = new Boiler();
            IBoiler boiler = new Boiler();

            boiler.TargetTemp  = 10;
            boiler.ActualTemp  = 11;
            boiler.IsElementOn = true;
            boiler.IsAuto      = true;

            DateTime dt  = boiler.LastOff;
            bool     ret = boiler.DisableOnHighTemp();

            Assert.True(dt.Ticks < boiler.LastOff.Ticks);
        }
Beispiel #28
0
            public void LogProcess()
            {
                string remarks = "O. K";
                Boiler b       = new Boiler(100, 12);
                int    t       = b.getTemp();
                int    p       = b.getPressure();

                if (t > 150 || t < 80 || p < 12 || p > 15)
                {
                    remarks = "Need Maintenance";
                }
                OnBoilerEventLog("Logging Info:\n");
                OnBoilerEventLog("Temparature " + t + "\nPressure: " + p);
                OnBoilerEventLog("\nMessage: " + remarks);
            }
        public void WhenBurstIntervalHasElapsed_EnableElement_WhenAutoOff()
        {
            Boiler b = new Boiler();
            b.BurstTime = 100;
            b.BurstInterval = 10;
            b.IsElementOn = true;
            b.IsBurstOn = true;
            b.IsAuto = false;

            bool ret = b.BurstCycleOn(DateTime.Now.AddSeconds(11));

            Assert.True(ret);
            Assert.True(b.IsElementOn);

        }
    static void Main(string[] args)
    {
        Boiler boiler = new Boiler(400);

        boiler.Increase();
        boiler.Decrease();

        try{
            boiler.check();
        }
        catch (BoilerException e) {
            Console.WriteLine(e.Message);
        }
        Console.ReadKey();
    }
        public void WhenActualTemp_IsBelowTargetAndElementIsOffForMoreThan10SecondsAndIsAutoFalse_ElementStausDisabled(decimal target, decimal actual, double offSeconds)
        {
            IBoiler boiler = new Boiler();

            boiler.TargetTemp  = target;
            boiler.ActualTemp  = actual;
            boiler.IsElementOn = false;
            boiler.IsAuto      = false;


            DateTime dueDate = DateTime.Now.AddSeconds(offSeconds);

            boiler.EnableOnLowTemp(dueDate);

            Assert.Equal(boiler.IsElementOn, false);
        }
Beispiel #32
0
        public GPIORepository()
        {
            _boiler = new Boiler();

            elementPin = new GPIOPinDriver(GPIOPinDriver.Pin.GPIO14);
            // Set it as an output pin.
            elementPin.Direction = GPIOPinDriver.GPIODirection.Out;
            // Give it power.
            elementPin.State = GPIOPinDriver.GPIOState.Low;

            pumpPin = new GPIOPinDriver(GPIOPinDriver.Pin.GPIO15);
            // Set it as an output pin.
            pumpPin.Direction = GPIOPinDriver.GPIODirection.Out;
            // Give it power.
            pumpPin.State = GPIOPinDriver.GPIOState.Low;
        }
Beispiel #33
0
        public Task <Measurment> ShowAsync(FragmentManager manager, Boiler boiler)
        {
            Boiler = boiler;

            Measurments.Add("");
            Measurments.Add("");
            for (int i = 0; i < Boiler.Template?.Count; i++)
            {
                Measurments.Add("");
            }

            recyclerAdapter = Measurments.GetRecyclerAdapter(BindViewHolderDelegate, Resource.Layout.adapter_control_CreateMeasurement);

            ShowNow(manager, "CreateMeasurementDialog");
            return(completionSource.Task);
        }
Beispiel #34
0
        public void Poll_EmptyWarmer_TurnsOffBoiler(
            [Frozen]Mock<ICoffeeMaker> coffeeMaker,
            Boiler sut)
        {
            sut.Poll(BoilerStatus.EMPTY, BrewButtonStatus.PUSHED, WarmerPlateStatus.WARMER_EMPTY);
            coffeeMaker.Verify(cm => cm.SetBoilerState(BoilerState.OFF));

            sut.Poll(BoilerStatus.EMPTY, BrewButtonStatus.NOT_PUSHED, WarmerPlateStatus.WARMER_EMPTY);
            coffeeMaker.Verify(cm => cm.SetBoilerState(BoilerState.OFF));

            sut.Poll(BoilerStatus.NOT_EMPTY, BrewButtonStatus.PUSHED, WarmerPlateStatus.WARMER_EMPTY);
            coffeeMaker.Verify(cm => cm.SetBoilerState(BoilerState.OFF));

            sut.Poll(BoilerStatus.NOT_EMPTY, BrewButtonStatus.NOT_PUSHED, WarmerPlateStatus.WARMER_EMPTY);
            coffeeMaker.Verify(cm => cm.SetBoilerState(BoilerState.OFF));
        }
Beispiel #35
0
 public void fireAction()
 {
     foreach (Fuse fuse in fuses)
     {
         fuse.PowerAble = !fuse.PowerAble;
         fuse.RefreshItems();
     }
     // nicht gut!
     if (StateMachine.Instance.State == GameState.WaterBoiler03)
     {
         GetComponent <AudioSource>().Play();
         if (Boiler != null)
         {
             Boiler.GetComponent <BoilerExplode>().Sleep = false;
         }
     }
 }
Beispiel #36
0
 public void DefaultConstructor_HasCorrectParameters_TempOffset()
 {
     Boiler b = new Boiler();
     Assert.Equal(b.TempOffset, 0);
 }
Beispiel #37
0
 public void DefaultConstructorHasCorrectParameters_ActualTemp()
 {
     Boiler b = new Boiler();
     Assert.Equal(b.ActualTemp, 0);
 }
Beispiel #38
0
 public void ConstructorSetsCorrect_ActualTemp(bool IsElementOn, bool IsPumpOn, bool IsBurstOn, bool IsAuto, decimal TargetTemp, decimal TempOffset, decimal ActualTemp, decimal Expected)
 {
     Boiler b = new Boiler(IsElementOn, IsPumpOn, IsBurstOn, IsAuto, TargetTemp, TempOffset, ActualTemp);
     Assert.Equal(b.ActualTemp, Expected);
 }
Beispiel #39
0
 public void Poll_PushedButtonAndNonEmptyBoilerAndEmptyPot_TurnsOnBoiler(
     [Frozen]Mock<ICoffeeMaker> coffeeMaker,
     Boiler sut)
 {
     sut.Poll(BoilerStatus.NOT_EMPTY, BrewButtonStatus.PUSHED, WarmerPlateStatus.POT_NOT_EMPTY);
     coffeeMaker.Verify(cm => cm.SetBoilerState(BoilerState.ON));
 }
Beispiel #40
0
 public void DefaultConstructor_HasCorrectParameters_TargetTemp()
 {
     Boiler b = new Boiler();
     Assert.Equal(b.TargetTemp, 0);
 }
Beispiel #41
0
 public void DefaultConstructor_HasCorrectParameters_IsAuto()
 {
     Boiler b = new Boiler();
     Assert.Equal(b.IsAuto, false);
 }
        public void WhenBurstIntervalHasNotElapsed_DoNotEnableElement_UnlessBurstIsOff()
        {
            Boiler b = new Boiler();
            b.BurstTime = 100;
            b.BurstInterval = 10;
            b.IsElementOn = true;
            b.IsElementOn = false;
            b.IsBurstOn = false;

            bool ret = b.BurstCycleOn(DateTime.Now.AddSeconds(5));

            Assert.False(ret);
            Assert.False(b.IsElementOn);

        }
        public void WhenActualTemp_IsBelowTargetAndElementIsOffForMoreThan10SecondsAndIsAutoFalse_ElementStausDisabled(decimal target, decimal actual, double offSeconds)
        {
            IBoiler boiler = new Boiler();
            boiler.TargetTemp = target;
            boiler.ActualTemp = actual;
            boiler.IsElementOn = false;
            boiler.IsAuto = false;


            DateTime dueDate = DateTime.Now.AddSeconds(offSeconds);
        
            boiler.EnableOnLowTemp(dueDate);

            Assert.Equal(boiler.IsElementOn, false);

        }
        public void WhenActualTemp_IsBelowTargetAndElementIsOffForMoreThan10SecondsAndIsAutoTrue_EnableElement(decimal target, decimal actual, double offSeconds, bool isAuto, bool expected)
        {
            IBoiler boiler = new Boiler();
            boiler.TargetTemp = target;
            boiler.ActualTemp = actual;
            boiler.IsElementOn = false;
            boiler.IsAuto = isAuto;



            DateTime dueDate = DateTime.Now.AddSeconds(offSeconds);
            boiler.EnableOnLowTemp(dueDate);

            Assert.Equal(boiler.IsElementOn, expected);

        }
        public void WhenActualTemp_IsGreaterThanOrEqualToTargetAndElementIsOnAndIsAutoTrue_DisableElement(decimal target, decimal actual, bool isAuto, bool expected)
        {
            IBoiler boiler = new Boiler();
            boiler.TargetTemp = target;
            boiler.ActualTemp = actual;
            boiler.IsElementOn = true;
            boiler.IsAuto = isAuto;

            //BoilerUtils utils = new BoilerUtils();
            bool ret = boiler.DisableOnHighTemp();
            Assert.Equal(boiler.IsElementOn, expected);

        }
        public void When_DisableOnHighTemp_DisablesTheElement_TheLastOffDateIsSet()
        {
            Boiler b = new Boiler();
            IBoiler boiler = new Boiler();
            boiler.TargetTemp = 10;
            boiler.ActualTemp = 11;
            boiler.IsElementOn = true;
            boiler.IsAuto = true;

            DateTime dt = boiler.LastOff;
            bool ret = boiler.DisableOnHighTemp();
            Assert.True(dt.Ticks < boiler.LastOff.Ticks);

        }