         
         XCTAssertFalse(modifiedElectricityConsumerConditionable.conditions.has(content: .NotPowered))
     }
+    
+    func testUpdatesConsumersIfInsufficientProduction() {
+        /// adding electricity producer
+        let producedElectricityAmount = 100
+        let electricityProducer = ElectricityProducerPloppTestDouble(origin: (1, 0), producesAmount: producedElectricityAmount)
+        do {
+            try subject!.city.map.plopp(plopp: electricityProducer)
+        } catch {
+            XCTFail("should not fail")
+        }
+        
+        /// adding electricity consumer
+        let consumedElectricityAmount = producedElectricityAmount * 2
+        
+        let electricityConsumerOrigin = (1, electricityProducer.maxX + 1)
+        let electricityConsumer = ElectricityConsumerPloppTestDouble(origin: electricityConsumerOrigin, consumesAmount: consumedElectricityAmount)
+        
+        do {
+            try subject!.city.map.plopp(plopp: electricityConsumer)
+        } catch {
+            XCTFail("should not fail")
+        }
+        
+        subject!.advance()
+        
+        /// Todo
+    }
 
 }

        
        XCTAssertEqual(0, subject!.city.ressources.electricityDemand)
    }

    func testUpdatesConsumersIfNoProduction() {
        /// adding electricity consumer

        super.tearDown()
    }
    
    /// MARK: electricity supply and demand
    
    func testUpdatesElectricitySupply() {
        XCTAssertEqual(0, subject!.city.ressources.electricitySupply)

