@@ -0,0 +1,1472 @@
+package arez.integration.observed;%0A%0Aimport arez.Observer;%0Aimport arez.annotations.ArezComponent;%0Aimport arez.annotations.Observable;%0Aimport arez.annotations.Observed;%0Aimport arez.annotations.ObserverRef;%0Aimport arez.integration.AbstractArezIntegrationTest;%0Aimport org.testng.annotations.Test;%0Aimport static org.testng.Assert.*;%0A%0Apublic class ObservedManualScheduleDisallowedTest%0A  extends AbstractArezIntegrationTest%0A%7B%0A  @ArezComponent%0A  public static abstract class TestComponent1%0A  %7B%0A    int _renderCallCount;%0A%0A    @Observed%0A    void render()%0A    %7B%0A      getValue();%0A      _renderCallCount++;%0A    %7D%0A%0A    @ObserverRef%0A    abstract Observer getRenderObserver();%0A%0A    @SuppressWarnings( %22UnusedReturnValue%22 )%0A    @Observable%0A    abstract long getValue();%0A%0A    abstract void setValue( long value );%0A  %7D%0A%0A  @Test%0A  public void scenario()%0A    throws Exception%0A  %7B%0A    final TestComponent1 component = new ObservedManualScheduleDisallowedTest_Arez_TestComponent1();%0A%0A    assertEquals( component._renderCallCount, 1 );%0A%0A    // Manual schedule should generate error%0A    final IllegalStateException exception =%0A      expectThrows( IllegalStateException.class, () -%3E safeAction( () -%3E component.getRenderObserver().schedule() ) );%0A%0A    assertEquals( component._renderCallCount, 1 );%0A    assertEquals( exception.getMessage(),%0A                  %22Arez-0202: Observer.schedule() invoked on observer named 'TestComponent1.0.render' but supportsManualSchedule() returns false.%22 );%0A  %7D%0A%7D%0A

Add integration test to verify that manual scheduling does not work if not OnDepsChanged