From 088def8522c4ba0c8e05f09351814e834df790ae Mon Sep 17 00:00:00 2001
From: Manuel Krombholz <s3866577@msx.tu-dresden.de>
Date: Wed, 3 Feb 2021 17:26:47 +0100
Subject: [PATCH] Fixed ControllingItemTest and Item.jrag

---
 eraser-base/src/main/jastadd/Item.jrag                       | 5 +++--
 .../java/de/tudresden/inf/st/eraser/ControllingItemTest.java | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag
index 18e11cb4..6ccdfb49 100644
--- a/eraser-base/src/main/jastadd/Item.jrag
+++ b/eraser-base/src/main/jastadd/Item.jrag
@@ -137,9 +137,10 @@ aspect ItemHandling {
   //--- setStateFromBoolean ---
   public abstract void Item.setStateFromBoolean(boolean value);
   public void ColorItem.setStateFromBoolean(boolean value) {
-    if (getState().getBrightness()==0) {
-      setBrightness(value ? 100 : 0);
+    if (getState()!=null && getState().getBrightness()!=0 && value) {
+     return;
     }
+    setBrightness(value ? 100 : 0);
   }
   public void DateTimeItem.setStateFromBoolean(boolean value) {
     // there is no good way here
diff --git a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/ControllingItemTest.java b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/ControllingItemTest.java
index af5fe99f..289ee0ec 100644
--- a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/ControllingItemTest.java
+++ b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/ControllingItemTest.java
@@ -102,10 +102,10 @@ public class ControllingItemTest {
     assertEquals("30,20,10", stringItem.getState());
     assertEquals(TupleHSB.of(30, 20, 10), target.getState(), "Item was not controlled correctly");
 
-    // boolean true -> set brightness to full (100)
+    // boolean true -> brightness should still be 10 because it's already turned on
     booleanItem.setState(true);
     assertTrue(booleanItem.getState());
-    assertEquals(TupleHSB.of(30, 20, 100), target.getState(), "Item was not controlled correctly");
+    assertEquals(TupleHSB.of(30, 20, 10), target.getState(), "Item was not controlled correctly");
 
     // color (33,33,33) -> set brightness to (33,33,33)
     colorItem.setState(TupleHSB.of(33, 33, 33));
-- 
GitLab